教你一步步用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脚本实现Web页面信息交互
Dec 21 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
简单介绍jsonp 使用小结
Jan 27 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
jQuery自定义组件(导入组件)
Nov 08 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
Jul 10 Javascript
JS中原始值和引用值的储存方式示例详解
Mar 23 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
详细分析vue表单数据的绑定
Jul 20 Javascript
JS轻量级函数式编程实现XDM二
Jun 16 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
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
javascript实现的listview效果
2007/04/28 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
微信小程序自定义组件
2017/08/16 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
python2.7和NLTK安装详细教程
2018/09/19 Python
Python对象与引用的介绍
2019/01/24 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
django 环境变量配置过程详解
2019/08/06 Python
Python之指数与E记法的区别详解
2019/11/21 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
大专自我鉴定范文
2013/10/01 职场文书
2014年技术部工作总结
2014/12/12 职场文书
安全生产隐患排查制度
2015/08/05 职场文书