教你一步步用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高级程序设计 学习笔记 js高级技巧
Sep 20 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
将list转换为json失败的原因
Dec 17 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
Jan 04 Javascript
JS造成内存泄漏的几种情况实例分析
Mar 02 Javascript
Element Card 卡片的具体使用
Jul 26 Javascript
原生JavaScript实现购物车
Jan 10 Javascript
原生js实现无缝轮播图效果
Jan 28 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中用数组的方法设置cookies
2011/04/21 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
jQuery版仿Path菜单效果
2011/12/15 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
拖动时防止选中
2017/02/03 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
js实现随机点名功能
2020/12/23 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python常用知识点汇总
2016/05/08 Python
python操作 hbase 数据的方法
2016/12/18 Python
python中实现k-means聚类算法详解
2017/11/11 Python
python用户管理系统
2018/03/13 Python
Python unittest模块用法实例分析
2018/05/25 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
教师的实习鉴定
2013/12/15 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
企业整改报告范文
2014/11/08 职场文书
2015年助残日活动总结
2015/03/27 职场文书
反邪教教育心得体会
2016/01/15 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript