使用jquery实现轮播图效果


Posted in jQuery onJanuary 02, 2021

今天给大家分享的是利用jquery实现轮播图的效果,废话不多说咯,直接上代码,当然每行代码会有注释了,这样也便于理解哦。

第一步:先引进jquery文件

<script src="./jquery.js"></script>

第二步:html样式

<div id="banner">
  <!-- 图片 -->
  <ul id="banner_img">
   <li>
    <img src="./img/1.jpg" alt="">
   </li>
   <li>
    <img src="./img/2.jpg" alt="">
   </li>
   <li>
    <img src="./img/3.jpg" alt="">
   </li>
   <li>
    <img src="./img/4.jpg" alt="">
   </li>
  </ul>
  <!-- 圆点 -->
  <ul id="banner_yuandian">
   <li class="active">1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
  </ul>
  <!-- < >箭头指向 -->
  <button id="banner_back"><</button>
  <button id="banner_next">></button>
 </div>

第三步:css样式

<style>
  *{
   margin: 0;
   padding: 0;
   list-style: none;
  }
  #banner{
   position: relative;
  }
  /*图片样式 */
  #banner #banner_img{
   width: 300px;
   height: 300px;
   border: 2px red solid;
  }
  #banner #banner_img img{
   width: 300px;
   height: 300px;
  }
  #banner #banner_img>li{
   display: none;
  }
  #banner #banner_img :first-child{
   display:block;
  }
  /* 圆点样式 */
  #banner_yuandian{
   position: absolute;
   bottom: 10px;
   display: flex;
   margin-left: 35px;

  }
  #banner_yuandian li{
   margin-left: 30px;
   width: 20px;
   height: 20px;
   border: 1px red solid;
   border-radius: 50%;
   text-align: center;
  }
  #banner_yuandian li:hover{
   background: orange;
  }
  #banner_yuandian .active{
   background: orange;
  }
  /* 箭头样式 */
  #banner_back{
   width: 30px;
   height: 30px;
   position: absolute;
   margin-top: -150px;
  }
  #banner_next{
   width: 30px;
   height: 30px;
   position: absolute;
   margin-top: -150px;
   margin-left: 273px;
  }
</style>

第四步:js样式

<script>
  
  //设置图片,圆点,箭头共同的下标 从0开始
  var index=0;

  //封装轮播的函数 第一步
  function show(){
   //下标每次+1增加
   index+=1;
   //如果下标大于等于图片的长度数,返回第一张图,即是下标index=0就行
   if(index>=$("#banner_img>li").length){
    index=0;
   }

   //让li的每张图片点击时显示自己,其他兄弟隐藏
   $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
   //圆点的下标也需要封装一下样式
   $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
  
  }

  //利用计时器达到轮播效果 第二步
  var x=setInterval(show,2000);

  //鼠标移动到图片上时清除计时器,移出之后重新加入计时器
  $("#banner_img>li").hover(
   function(){
    clearInterval(x);
   },
   function(){
    x=setInterval(show,2000);
   }
  )


  //圆点设置,点击圆点,切换相应图片 第三步
  $("#banner_yuandian>li").on("click",function(){
   //点击圆点时的下标取共同下标
   var index=$(this).index();//出错的地方index()语法

   //点击下标时展现对应的图片,其他兄弟图隐藏
   $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
   //点击圆点,添加样式,其他删除
   $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
  
  })

  //鼠标滑动上去滑动出来要清除计时器和再次设置计时器 第四步
  $("#banner_yuandian>li").hover(
   function(){
    clearInterval(x);
   },
   function(){
    x=setInterval(show,2000);
   }
  )
   

  //箭头设置 第五步
  
  $("#banner_back").on("click",function(){
   //点击一次减去1
   index--;
   //当下标小于0时,就返回第一张图
   if(index<0){
    index=0;
   }

   
   //点击下标时展现对应的图片,其他兄弟图隐藏 
   $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
   //点击圆点,添加样式,其他删除
   $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");

  })
  //下一张 可以直接调用
  $("#banner_next").on("click",function(){
   show();
  })

  //点击button按钮再次清除计时器和添加计时器
  $("button").hover(
   function(){
    clearInterval(x);
   },
   function(){
    x=setInterval(show,2000);
 }
)

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

jQuery 相关文章推荐
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
使用 jQuery 实现表单验证功能
Jul 05 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery中库的引用方法
Jan 06 jQuery
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
jQuery实现飞机大战小游戏
Jul 05 jQuery
jQuery实现日历效果
Sep 11 jQuery
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 jQuery
jQuery实现全选按钮
Jan 01 #jQuery
jquery自定义组件实例详解
Dec 31 #jQuery
JS+JQuery实现无缝连接轮播图
Dec 30 #jQuery
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 #jQuery
jQuery实现简单轮播图效果
Dec 27 #jQuery
原生jQuery实现只显示年份下拉框
Dec 24 #jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 #jQuery
You might like
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
php和html的区别点详细总结
2019/09/24 PHP
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python 多线程Threading初学教程
2017/08/22 Python
Python实现全排列的打印
2018/08/18 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Python笔试面试题小结
2019/09/07 Python
python读取Kafka实例
2019/12/23 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
Java如何格式化日期
2012/08/07 面试题
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
extern在函数声明中是什么意思
2014/01/19 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
公司董事长职责
2013/12/12 职场文书
倡议书格式
2014/04/14 职场文书
平安校园建设方案
2014/05/02 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
Python日志模块logging用法
2022/06/05 Python