jQuery实现大图轮播


Posted in Javascript onFebruary 13, 2017

css样式:

*{
 margin: 0;
 padding: 0;
}
ul{
 list-style:none;
}
.slideShow{
 width: 620px;
 height: 700px; /*其实就是图片的高度*/
 border: 1px #eeeeee solid;
 margin: 100px auto;
 position: relative;
 overflow: hidden; /*此处需要将溢出框架的图片部分隐藏*/
}
.slideShow ul{
 width: 2500px;
 position: relative; /*此处需注意relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置,如果没有这个属性,图片将不可左右移动*/
}
.slideShow ul li{
 float: left; /*让四张图片左浮动,形成并排的横着布局,方便点击按钮时的左移动*/
 width: 620px;
}
.slideShow .showNav{ /*用绝对定位给数字按钮进行布局*/
 position: absolute;
 right: 10px;
 bottom: 5px;
 text-align:center;
 font-size: 12px; 
 line-height: 20px;
}
.slideShow .showNav span{
 cursor: pointer;
 display: block;
 float: left;
 width: 20px;
 height: 20px;
 background: #ff5a28;
 margin-left: 2px;
 color: #fff;
}
.slideShow .showNav .active{
 background: #b63e1a;
}

js代码规范:

<script src="../../../jQuery/js/jquery-2.1.4.js"></script> <script type="text/javascript">
$(document).ready(function(){ 
var slideShow=$(".slideShow"),  //获取最外层框架的名称 
ul=slideShow.find("ul"), 
showNumber=slideShow.find(".showNav span"),   //获取按钮 
oneWidth=slideShow.find("ul li").eq(0).width();   //获取每个图片的宽度 
var timer=null;   //定时器返回值,主要用于关闭定时器 
var iNow=0;   //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0 
showNumber.on("click",function(){    //为每个按钮绑定一个点击事件  
$(this).addClass("active").siblings().removeClass("active");  //按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉 
var index=$(this).index();    //获取哪个按钮被点击,也就是找到被点击按钮的索引值 
iNow=index; 
ul.animate({ "left":-oneWidth*iNow,  //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值iNOWx确定 
 }) 
 }); 
 function autoplay(){ 
timer=setInterval(function(){   //打开定时器 
iNow++;     //让图片的索引值次序加1,这样就可以实现顺序轮播图片 
 if(iNow>showNumber.length-1){   //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始 
iNow=0; } 
showNumber.eq(iNow).trigger("click");   //模拟触发数字按钮的click 

},2000);     //2000为轮播的时间
} 
 autoplay(); 
 slideShow.hover( function(){clearInterval(timer);},autoplay); 另外注意setInterval的用法比较关键。
})
</script>

主体代码:

<body>
 <div class="slideShow">
 <!--图片布局开始-->
 <ul>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/view/111.jpg"/></a></li>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/view/112.jpg" /></a></li>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/view/113.jpg" /></a></li>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/view/114.jpg" /></a></li>
 </ul>
 <!--图片布局结束-->
 <!--按钮布局开始-->
 <div class="showNav">
 <span class="active">1</span>
 <span>2</span>
 <span>3</span>
 <span>4</span>
 </div>
 <!--按钮布局结束-->
 </div>
</body>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
window.open的功能全解析
Oct 10 Javascript
Use Word to Search for Files
Jun 15 Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 Javascript
js仿苹果iwatch外观的计时器代码分享
Aug 26 Javascript
jQuery超简单选项卡完整实例
Sep 26 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
react 父子组件之间通讯props
Sep 08 Javascript
微信小程序开发打开另一个小程序的实现方法
May 17 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 Javascript
react antd实现动态增减表单
Jun 03 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
Feb 13 #Javascript
你真的了解BOM中的history对象吗
Feb 13 #Javascript
微信小程序-获得用户输入内容
Feb 13 #Javascript
js实现textarea限制输入字数
Feb 13 #Javascript
Canvas实现动态的雪花效果
Feb 13 #Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 #Javascript
Bootstrap选项卡学习笔记分享
Feb 13 #Javascript
You might like
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
javascript类型转换示例
2014/04/29 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python3.2中Print函数用法实例详解
2015/05/19 Python
pytorch permute维度转换方法
2018/12/14 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python 图像增强算法实现详解
2021/01/24 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
迎新生欢迎词
2015/01/23 职场文书
加入学生会自荐书
2015/03/05 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
Python语言中的数据类型-序列
2022/02/24 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python