教你一步步用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 相关文章推荐
JAVASCRIPT  THIS详解 面向对象
Mar 25 Javascript
JS 字符串连接[性能比较]
May 10 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
js获取class的所有元素
Mar 28 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 Javascript
js实现飞机大战游戏
Aug 26 Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 Javascript
如何在 Vue 表单中处理图片
Jan 26 Vue.js
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提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
linux下编译安装memcached服务
2014/08/03 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
改变状态栏文字的js代码
2014/06/13 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
python3跳出一个循环的实例操作
2020/08/18 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
九年级物理教学反思
2014/01/29 职场文书
综合实践教学反思
2014/01/31 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
花坛标语大全
2014/06/30 职场文书
运动会广播稿100字
2014/09/14 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
讲文明倡议书
2015/04/29 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
交通安全主题班会
2015/08/12 职场文书
2015年度女工工作总结
2015/10/22 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB