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实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
jquery加载单文件vue组件的方法
Jun 20 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
jQuery pagination分页示例详解
Oct 23 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
jquery 验证用户名是否重复代码实例
May 14 jQuery
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 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
mysql5写入和读出乱码解决
2006/11/25 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
python使用smtplib模块发送邮件
2020/12/17 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
全球工业:Global Industrial
2020/02/01 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
计算机专业自荐信
2013/10/14 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
2014年个人委托书范本
2014/10/13 职场文书
健康状况证明书
2014/11/26 职场文书
绵山导游词
2015/02/05 职场文书