教你一步步用jQyery实现轮播器


Posted in Javascript onDecember 18, 2016

实现原理

如图,试想一下,若是将<ul>的width属性值设置的很宽,直到可以装下你所有的图片,而每一个图片又用<li>包着并且设置了左浮动。

那么当我们向左移动ul的时候并且移动的距离为<li>的宽度,第二个<li>不就被移动到了<div>的窗口,这样一来图片不就被一张一张显示出来了吗?

接下来我们在设置<div>的属性overflow:hidden,那么<div>窗口以外的图片不显示,只显示移动到当前窗口的图片,是不是又完美了一些,感觉快做好了是吧!

教你一步步用jQyery实现轮播器 

说了一些原理,好了,直接上代码,记得引入jquery。

这是div做的布局,做的时候记得加上边框,做后在删掉,这样便于测试

<div class="slideShow">
 <div class="nav-t">
  <ul>
   <li><a href="#" target="_blank"><img src="images/1.png" alt=""></a></li>
   <li><a href="#" target="_blank"><img src="images/2.png" alt=""></a></li>
   <li><a href="#" target="_blank"><img src="images/3.png" alt=""></a></li>
   <li><a href="#" target="_blank"><img src="images/4.png" alt=""></a></li>
   <li><a href="#" target="_blank"><img src="images/5.png" alt=""></a></li>
  </ul>
  <div class="nav-b">
   <span class="active">1</span>
   <span>2</span>
   <span>3</span>
   <span>4</span>
   <span>5</span>
  </div>
 </div>
 </div>
 <script type="text/javascript" src="jquery-min.js"></script>
 <script type="text/javascript" src="lunbo.js"></script>

接下来设置一下样式

<style>
 .slideShow{
  border:0px solid blue;
  width:600px;
  height:450px;
  margin:50px auto;
  position:relative;
 }
 .nav-t{
  border:0px solid red;
  width:580px;
  height:430px;
  margin:8px auto;
  position:relative;
  overflow:hidden;
 }
 .nav-t ul{
  border:0px solid green;
  list-style:none;
  width:3000px;
  height:430px;
  margin:0;
  padding:0;
  position:relative;
 }
 .nav-t li{
  height:427px;
  width:580px;
  float:left;
 }
 .nav-b{
  position:absolute;
  top:390px;
  left:220px;
  cursor:default;
 }
 .nav-b span{
  margin-right:5px;
  border:1px solid red;
  padding:0 6px;
  border-radius:12px;
  color:#fff;
  background:rgba(132,125,119,0.5);
  cursor:pointer;
 }
 .nav-b span.active{
  background:rgba(0,0,0,0.8);
 }
 </style>

用js实现点击轮播图片、自动轮播图片,鼠标移动上去停止轮播

$(function(){
 
 $(function(){
 var slide=$(".slideShow"),
  navt=slide.find(".nav-t"),
  ul=navt.find("ul"),
  navbs=slide.find(".nav-b span"),
  onwidth=ul.find("li").eq(0).width(), //获取ul下的li宽度
  timer=null,
  inow=0;
 navt.hover(function(){
   clearInterval(timer); //鼠标移上去,清除掉自动轮播功能,即定时轮播
  },autoPlay); 
 navbs.on("click",function(){ //点击轮播事件
  var me=$(this);
   inow=me.index();  //此处变量用的与自动轮播函数里的相同,为的是能在随便点击后,自动轮播时按照我们点击了的继续向后轮播,这叫动态实时
  ul.animate({left:-inow*onwidth},0.01); //ul向左移动从而使得下一个li显示到div的当前窗口
  navbs.removeClass("active");   //清除掉上一个点击按钮的样式
  me.addClass("active");     //为当前被点击的按钮添加第一个按钮样式
 });
 autoPlay();     
 function autoPlay(){     //自动轮播函数
 timer=setInterval(function(){   //开定时器
  inow++;
  if(inow==navbs.length){    //判断是否到了最后一张,若是到了,返回到第一张
   inow=0
   }
  navbs.eq(inow).trigger("click"); //根据定时的时间用span的索引自动调用click事件,trigger为jQuery的自动调用函数
  },3000);
 }

});



});

看一下效果图?好的

教你一步步用jQyery实现轮播器

教你一步步用jQyery实现轮播器

总结

好了,以上就是利用jQyery实现轮播器的全部内容了,怎么样,要不你也做一个?希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JS日历 推荐
Dec 03 Javascript
关于html+ashx开发中几个问题的解决方法
Jul 18 Javascript
基于JQuery实现的类似购物商城的购物车
Dec 06 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
jQuery使用height()获取高度需要注意的地方
Dec 13 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
微信小程序实现左滑动删除效果
Mar 30 Javascript
微信小程序商品详情页底部弹出框
Nov 22 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
Angular.js实现注册系统的实例详解
Dec 18 #Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 #Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 #Javascript
纯js实现悬浮按钮组件
Dec 17 #Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
Dec 17 #Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 #Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 #Javascript
You might like
php 字符转义 注意事项
2009/05/27 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Angular 作用域scope的具体使用
2017/12/11 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python脚本实现验证码识别
2018/06/07 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
财务会计大学生自我评价
2014/04/09 职场文书
《给予树》教学反思
2016/03/03 职场文书
新手初学Java网络编程
2021/07/07 Java/Android
Python音乐爬虫完美绕过反爬
2021/08/30 Python
Python获取字典中某个key的value
2022/04/13 Python