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输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jquery实现简单实用的轮播器
May 23 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 jQuery
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
jquery实现的放大镜效果示例
Feb 24 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 stream_context_create()作用和用法分析
2011/03/29 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
详解php中 === 的使用
2016/10/24 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
JS 统计时间
2021/03/09 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
Django实现快速分页的方法实例
2017/10/22 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
django基于restframework的CBV封装详解
2019/08/08 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python reduce函数作用及实例解析
2020/05/08 Python
django 外键创建注意事项说明
2020/05/20 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
财务会计应届生求职信
2013/11/24 职场文书
银行实习生的自我评价
2014/01/13 职场文书
干部行政关系介绍信
2014/01/17 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
专科生就业求职信
2014/06/22 职场文书
优秀班组申报材料
2014/12/25 职场文书
活动主持人开场白
2015/05/28 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技