<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>旋转木马</title>
<style>
ul{
list-style: none;
margin: 0;
padding: 0;
}
a{
text-decoration: none;
color: #000;
}
.wrap{
width: 1200px;
margin: 0 auto;
}
.slide{
width: 1200px;
height: 500px;
/*background: pink;*/
position: relative;
}
.slide ul li{
position: absolute;
}
.slide ul li img{
width: 100%;
height: 100%;
}
.arrow a{
position: absolute;
text-align: center;
line-height: 76px;
top: 50%;
height: 76px;
width: 112px;
margin-top: -56px;
font-size: 40px;
font-weight: bold;
z-index: 100;
background: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
.arrow a.pre{
left: 0;
}
.arrow a.next{
right: 0;
} </style>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body> <div class="wrap">
<div class="slide">
<ul>
<li><img src="imgs/1.jpg" alt=""></li>
<li><img src="imgs/2.jpg" alt=""></li>
<li><img src="imgs/3.jpg" alt=""></li>
<li><img src="imgs/4.jpg" alt=""></li>
<li><img src="imgs/5.jpg" alt=""></li>
</ul>
<div class="arrow">
<a href="javascript:;" class="pre"><</a>
<a href="javascript:;" class="next">></a>
</div>
</div>
</div> <script> $(function(){
/*避免多次点击出现bug,只能在点击后动画完后才能再点击*/
var status=true;
var timer=null;
/*核心,把会变化的值存起来,然后动态循环这些值,然后添加到对应索引值的li标签里*/
var json=[{
width:400,
height:200,
top:20,
left:50,
opacity:0.2,
z:2
},{
width:600,
height:300,
top:70,
left:0,
opacity:0.8,
z:3
},{
width:800,
height:400,
top:0,
left:200,
opacity:1,
z:4
},{
width:600,
height:300,
top:70,
left:600,
opacity:0.8,
z:3
},{
width:400,
height:200,
top:20,
left:800,
opacity:0.2,
z:2
}];
move();
clearInterval(timer);
timer=setInterval(function(){
move(true);
},2000);
$(".slide").hover(function(){
/*为什么添加stop(),为了多次触发不断触发BUG,所以每次触发前都
*把之前的动画停止掉
*/
$(".arrow a").stop().fadeIn();
clearInterval(timer);
},function(){
$(".arrow a").stop().fadeOut();
timer=setInterval(function(){
move(true);
},2000);
})
$(".arrow .pre").on("click",function(){
if(status){
status=false;
move(true)
}
});
$(".arrow .next").on("click",function(){
if(status){
status=false;
move(false)
}
}); function move(offOn){
/*一开始调用时没有传值,但会走动一下,所以要判断没传值时,不走if语句里的内容*/
if(offOn!=undefined){
if(offOn){
/*使用数组删除会返回删除值,而它是删除最后一个,所以就是
*返回最后一个值
,然后数组的前追加*/
json.unshift(json.pop());
}else{
/*这个同样原理,只是它是数组的后追加,把数组的第一个追加到最后*/
json.push(json.shift());
}
}
$.each(json,function(i,v){
/*历遍json,添加到对应索引的li标签,使用animate实现动画效果*/
$(".slide ul li").eq(i).css("z-index",v.z).stop().animate({"width":v.width,"opacity":v.opacity,"left":v.left,"top":v.top,"height":v.height},500,function(){
/*这里就是动画完后执行的回调函数*/
status=true;
});
})
}
}) </script>
</body>
</html>

  

Js 旋转木马 轮播的更多相关文章

  1. 原生JS实现旋转木马轮播图特效

    大概是这个样子: 首先来简单布局一下(emm...随便弄一下吧,反正主要是用js来整的) <!DOCTYPE html> <html lang="en"> ...

  2. 原生js焦点轮播图

    原生js焦点轮播图主要注意这几点: 1.前后按钮实现切换,同时注意辅助图2.中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index3.间隔调用与无限轮播.4.注意在动画时 ...

  3. 原生js实现轮播图

    原生js实现轮播图 很多网站上都有轮播图,但找到一个系统讲解的却很难,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出. 原理: 将一些图片在一行中平铺,然后计 ...

  4. js实现轮播图效果(附源码)--原生js的应用

    1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  5. js实现轮播图动画

    在网页浏览中,可以看到轮播图是无处不在的,这是一个前端工程最基本的技巧.首先看看几个网页的呈现的效果. QQ音乐: 网易云音乐: 天猫: 接下来将从简到难总结几种实现轮播图的方法. 1.样式一:鼠标滑 ...

  6. js编写轮播图,广告弹框

    1.轮播图 js编写轮播图,需要用到setInterval(计时器):先给一个div,里面放轮播图的图片,将轮播图的图片明明为相同样式的:如:banner1.jpg,banner2.jpg,banne ...

  7. js原生轮播

    js原生轮播 今天用js做了轮播图,做的不怎么好,希望大家能够看懂. 效果: 1.鼠标放在轮播图上自动停止 2.鼠标离开轮播图自动播放 3.鼠标点击轮播图上的小圆点跳转到相应的图上. 代码: < ...

  8. js实现轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 封装一个简单的原生js焦点轮播图插件

    轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...

随机推荐

  1. java.lang.reflect.Constructor

    java.lang.reflect.Constructor 一.Constructor类是什么 Constructor是一个类,位于java.lang.reflect包下. 在Java反射中 Cons ...

  2. mongodb 与 c++ 的配合使用

    最近在尝试使用 mongodb 作为服务端持久化方案,服务端程序是使用 c++ 写的,折腾了不少时间,记录一下吧. 1.下载 boost 1.56.0 http://www.boost.org/use ...

  3. hdu.1104.Remainder(mod && ‘%’ 的区别 && 数论(k*m))

    Remainder Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  4. EasyUI中datagrid控件的使用 设置多行表头(两行或多行)

    EasyUI中的datagrid控件十分强大,能生成各种复杂的报表,现在因为项目需要,需要生成一个表头两行的表,找了一些说明文档,以下用一个实例来说明一下: 第一种方法: $('#divData'). ...

  5. Longest Common Substring

    Given two strings, find the longest common substring. Return the length of it. Example Given A = &qu ...

  6. osx xcode 创建python项目

    http://stackoverflow.com/questions/5276967/python-in-xcode-7

  7. 随机添加一个Class,Class提前写好

    $("").hover(function(){ var ary = ["red","green","blue",]; v ...

  8. JSON字符串转JavaBean,net.sf.ezmorph.bean.MorphDynaBean cannot be cast to ……

    在json字符串转java bean时,一般的对象,可以直接转,如:一个学生类,属性有姓名.年龄等 public class Student implements java.io.Serializab ...

  9. PHP运算符:算数运算符、逻辑运算符、三目运算符、位运算符、字符串运算符。

    赋值运算符 PHP 赋值运算符用于向变量写值. PHP 中基础的赋值运算符是 "=". 这意味着右侧复制表达式会为左侧运算数设置值. _______________________ ...

  10. java计算时间差

    比如:现在是2016-03-26 13:31:40        过去是:2016-01-02 11:30:24 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方法一: DateFo ...