jQuery轮播图实例详解


Posted in jQuery onAugust 15, 2018

本文实例为大家分享了jQuery轮播图实例的具体代码,供大家参考,具体内容如下

1、html+css+js代码

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <style type="text/css">
 *{
  margin: 0;
  padding: 0;
  text-decoration: none;
 }
 body{
  padding: 20px;
 }
 #container{
  min-width: 1000px;
  /*width: 1300px;*/
  height: 400px;
  overflow: hidden;
  position: relative;
  margin: 0 auto;
 }
 #list{
  /*width: 9100px;*/
  height: 400px;
  position: absolute;
  z-index: 1;
  top:0;
  left: 0;
  overflow: hidden;
 }
 #list img{
  float: left;
  /*width: 1300px;*/
  height: 400px;
 }
 #buttons{
  position: absolute;
  height: 10px;
  width: 100px;
  z-index: 2;
  bottom: 20px;
  left: 660px;
  text-align: center;
 }
 #buttons span{
  cursor: pointer;
  float: left;
  width: 10px;
  height: 10px;
  margin-right: 9px;
  display: inline-block;
  background-image: url(img/_eb1b95e.png);
  background-position: -1079px -687px;

 }
 #buttons .on{
  background-position: -1049px -687px;
 }
 .arrow{
  cursor: pointer;
  display: none;
  width: 36px;
  height: 76px;
  position: absolute;
  z-index: 2;
  top: 180px;
  background-color: rgba(0,0,0,.3);
  color: #fff;
 }
 #container:hover .arrow{
  display: block;
 }
 #prev{
  background: url(img/_eb1b95e.png);
  background-position: -569px -491px;
  left: 20px;
 }
 #next{
  background: url(img/_eb1b95e.png);
  background-position: -513px -491px;
  right: 20px;
 }
 </style>
</head>
<body>
 <div id="container">
 <div id="list" >
  <img src="img/5.jpg" alt="1"/>
  <img src="img/1.jpg" alt="1"/>
  <img src="img/2.jpg" alt="2"/>
  <img src="img/3.jpg" alt="3"/>
  <img src="img/4.jpg" alt="4"/>
  <img src="img/5.jpg" alt="5"/>
  <img src="img/1.jpg" alt="5"/>
 </div>
 <div id="buttons">
  <span index="1" class="on"></span>
  <span index="2"></span>
  <span index="3"></span>
  <span index="4"></span>
  <span index="5"></span>
 </div>
 <a href="javascript:;" id="prev" class="arrow"></a>
 <a href="javascript:;" id="next" class="arrow"></a>
 </div>

<script type="text/javascript" src="js/jquery.1.10.2.js"></script>
<script type="text/javascript">
 var container = $("#container");
 var list = $("#list");
 var listimg = $("#list img"); 
 var buttons = $("#buttons span");
 var prev = $("#prev");
 var next = $("#next");
 var index = 1;
 var len = 5;
 var num =len+2;
 var interval = 3000;//变换周期
 var timer; 
 var clientwidth=document.documentElement.clientWidth;//屏幕的宽度
 var conwidth = parseInt(clientwidth)-100;//显示界面的宽度

 $(function(){


 setwidth();//设置container的宽度以及里面元素list和list中img的宽度


 function animate(offset){
  var left = parseInt(list.css("left"))+offset;

  // list.animate({left:left+'px'},'normal');
  list.animate({left:left+'px'},conwidth,function(){
  //第一位规定产生动画效果的样式,第二位设置速度,第三位是动画函数执行完后执行的函数
  if (left > -conwidth) {//如果是第一个元素还向前移,就让最后一个元素是这个元素
   list.css('left',-conwidth*len);
  }
  if (left < (-conwidth*len)) {//如果是最后一个元素还向后移,就让第一个元素是这个元素
   list.css('left', -conwidth);
  }
  });
 }

 function showbutton(){//通过操作css来将显示的图片代表的下方原点变大,其余变小
  buttons.eq(index-1).addClass('on').siblings().removeClass('on');
 }

 function play(){
  timer = setTimeout(function(){
  next.trigger('click');//trigger()方法触发被选元素的指定事件类型。
  play();
  },interval);
 }
 function stop(){
  clearTimeout(timer);
 }

 next.bind('click',function(){
  if (list.is(':animated')) {
  return;
  }
  if (index == 5) {
  index = 1;
  }
  else{
  index++;
  }
  animate(-conwidth);
  showbutton();
 });

 prev.bind('click',function(){
  if (list.is(':animated')) {
  return;
  }
  if (index == 1) {
  index = 5;
  }
  else{
  index--;
  }
  animate(conwidth);
  showbutton();
 });

 buttons.each(function(){
  $(this).bind('click',function(){
  if (list.is(':animated') || $(this).attr('class')=='on') {
   return;
  }
  var myindex = parseInt($(this).attr('index'));
  var offset = -conwidth*(myindex - index);

  animate(offset);
  index = myindex;
  showbutton();
  })
 });

 container.hover(stop,play);//鼠标悬停时执行stop()函数,移开时执行play()

 play();

 });

 function setwidth(){//设置container的宽度以及里面元素list和list中img的宽度

  container[0].style.width = conwidth +'px' ;
  list[0].style.width = num*conwidth +'px';
  list[0].style.left = '-'+conwidth +'px';
  for (var i = 0; i < listimg.length; i++) {
  listimg[i].style.width = conwidth + 'px';
  }
 }
</script>
</body>
</html>

2、实现思路

轮播图的功能可分为:自动循环播放,点击左边按钮显示前面图片,点击后边显示后面图片,点击下方的小圆点实现跳转播放。

1.自动播放功能:设置一个定时器,每隔一个周期的时间,触发一次点击右边按钮的函数功能。
2.点击左边按钮显示前面图片:首先我们应该了解到轮播图的原理。图解

jQuery轮播图实例详解

大盒子是container,小盒子是list,list里面有很多图片,没有间隔的排列在一行,用绝对定位来操纵每次可以看到的图片,也就是定位在container里面的是可见部分。当点击左边的按钮时,前面的图片右移,相当于绝对定位中的left值加一个图片的宽度。

3.点击右边按钮显示后面图片:原理和左边的相同,相当于图片左移,让后面的图片显示出来。
4.点击下方的小圆点实现跳转播放:此时页面是第二个图片,要跳转到第五个,相当于点击了三次右边的按钮,也相当于图片左移三个图片的宽度。

3、需要掌握的知识点:

css:

绝对定位

js+jq:

document.documentElement.clientWidth;
obj.animate();
obj.css();
obj.eq()
obj.addClass();
obj.siblings();
obj.removeClass();
setTimeout();
clearTimeout();
obj.trigger();
obj.attr();
obj.bind();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
jQuery判断邮箱格式对错实例代码讲解
Apr 12 jQuery
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
jQuery实现轮播图源码
Oct 23 jQuery
jquery实现抽奖功能
Oct 22 jQuery
jQuery实现增删改查
Dec 22 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
详解jQuery的核心函数和事件处理
Feb 18 jQuery
layui中使用jquery控制radio选中事件的示例代码
Aug 15 #jQuery
jQuery仿移动端支付宝键盘的实现代码
Aug 15 #jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 #jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 #jQuery
JQuery通过后台获取数据遍历到前台的方法
Aug 13 #jQuery
jQuery实现图片简单轮播功能示例
Aug 13 #jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 #jQuery
You might like
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
javascript String 对象
2008/04/25 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python IDLE添加行号显示教程
2020/04/25 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
人事专员岗位职责范本
2014/03/04 职场文书
法律系毕业生求职信
2014/05/28 职场文书
五水共治一句话承诺
2014/05/30 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
采购部年度工作总结
2015/08/13 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL