jQuery实现轮播图效果demo


Posted in jQuery onJanuary 11, 2020

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

效果展示:

jQuery实现轮播图效果demo

编程思路:

1. 首先是基础的布局,使用"子绝父相"等页面布局方法,将图片、左右按钮以及每张图片下方对应的标识小按钮安排的明明白白。
2. JS中在通过点击左右按钮来切换图片时,使用三个变量分别来表示当前显示的图片序号、点击上一张按钮时候显示的图片序号、点击下一张按钮时候显示的图片序号。
3. 在自动轮播的时候,通过使用定时器来改变当前显示的图片序号来控制轮播

具体代码:

HTML代码:

<div id="slideShow">
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p1.jpg" alt="0"></a>
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p2.jpg" alt="1"></a>
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p3.jpg" alt="2"></a>
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p4.jpg" alt="3"></a>
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p5.jpg" alt="4"></a>
 <a href="#" class="slide_pic"><img src="../img/phone_photo/p6.jpg" alft="5"></a>

 <button class="prev_one"> < </button>
 <button class="next_one"> > </button>

 <ul id="mark_box">
  <li class="mark">1</li>
  <li class="mark">2</li>
  <li class="mark">3</li>
  <li class="mark">4</li>
  <li class="mark">5</li>
  <li class="mark">6</li>
 </ul>
</div>

CSS代码:

#slideShow{
 width: 330px;
 height: 245px;
 background-color: #999999;
 text-align: center;
 left: 50%;
 margin-left: -165px;
 position: relative;
}
#slideShow .slide_pic{
 position: absolute;
 left: 0;
 top: 0;
}
#slideShow .prev_one{
 position: absolute;
 left: 0;
 top: 45%;
}
#slideShow .next_one{
 position: absolute;
 right: 0;
 top: 45%;
}
#slideShow #mark_box{
 position: absolute;
 bottom: 0;
}

#mark_box .mark{
 width: 20px;
 height: 20px;
 border-radius: 20px;
 padding: 2px;
 text-align: center;
 line-height: 20px;
 background-color: red;
 float: left;
 list-style: none;
 margin: 10px 10px;
 cursor: pointer;
}
#mark_box .active_img{
 background-color: green;
}

Javascript代码:

$(function(){
 var prev_mark=0;    //点击上一张按钮时候的一个标志位
 var next_mark=0;    //点击下一张按钮时候的一个标志位
 var cur_pic=$('.slide_pic').length-1;   //当前图片的序号

 $('.prev_one').click(function(){
  prev_mark=cur_pic;   //获取当前图片的序号
  if(prev_mark === 0){
   prev_mark=$('.slide_pic').length-1;
  }
  else{
   prev_mark--;
  }
  cur_pic=prev_mark;
  $('.slide_pic').eq(cur_pic).fadeIn(500).siblings('.slide_pic').fadeOut(500);
  $('.mark').eq(cur_pic).addClass('active_img').siblings('.mark').removeClass('active_img');
 });

 $('.next_one').click(function(){
  next_mark=cur_pic;
  if(next_mark === $('.slide_pic').length-1){
   next_mark=0;
  }
  else{
   next_mark++;
  }
  cur_pic=next_mark;
  $('.slide_pic').eq(cur_pic).fadeIn(500).siblings('.slide_pic').fadeOut(500);
  $('.mark').eq(cur_pic).addClass('active_img').siblings('.mark').removeClass('active_img');
 });

 // 轮播图下面的指示点
 $.each($('.mark'),function(index,value){
  $(value).click(function(){
   cur_pic=this.innerHTML-1;
   $('.slide_pic').eq(cur_pic).fadeIn(500).siblings('.slide_pic').fadeOut(500);
   $(this).addClass('active_img').siblings('.mark').removeClass('active_img');
  });
 });

 // 鼠标移入图片则停止轮播;鼠标移出图片则开始轮播
 var slide_timer=setInterval(auto_slide,2000);
 $('#slideShow').mouseenter(function(){
  clearInterval(slide_timer);
 });
 $('#slideShow').mouseleave(function(){
  slide_timer=setInterval(auto_slide,2000);
 });

 // 自动轮播函数
 function auto_slide(){
  if(cur_pic === $('.slide_pic').length-1){
   cur_pic =0;
  }
  else {
   cur_pic++;
  }
  $('.slide_pic').eq(cur_pic).fadeIn(500).siblings('.slide_pic').fadeOut(500);
  $('.mark').eq(cur_pic).addClass('active_img').siblings('.mark').removeClass('active_img');
 }
});

更多关于轮播图效果的专题,请点击下方链接查看学习

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

jQuery 相关文章推荐
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
使用jQuery实现动态添加小广告
Jul 11 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
jQuery中each方法的使用详解
Mar 18 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 #jQuery
jQuery实现鼠标移入显示蒙版效果
Jan 11 #jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 #jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 #jQuery
jQuery操作动画完整实例分析
Jan 10 #jQuery
jQuery操作事件完整实例分析
Jan 10 #jQuery
jQuery操作元素追加内容示例
Jan 10 #jQuery
You might like
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
syntaxhighlighter 使用方法
2007/07/02 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
js实现网页随机验证码
2020/10/19 Javascript
Python学习资料
2007/02/08 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
pandas计数 value_counts()的使用
2019/06/24 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
留学自荐信的技巧
2013/10/17 职场文书
应届生自我鉴定
2013/12/11 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
初中班主任工作随笔
2015/08/15 职场文书
Nginx配置https的实现
2021/11/27 Servers