用jquery实现轮播图的方法总结

2021-07-05  本文已影响0人  圆滚滚大煤球

核心原理:当我们点了按钮后,对应图片的定位会修改,向左滑动展现在盒子可视区域;

1、绑定点击事件,激活切换tab栏样式;


$(document).ready(function() {

    $('.img_box').on('click','.btn span',function() {
        //一定要把点击的按钮的索引号存到index,比如点击了2按钮,因为鼠标经过触发了清除定时器事件,再开启index为0,会从0依次点击按钮,但点击后把当前点击的index存为变量的话,他就以2为准,index++ ,就是3了,就可以依次轮播,不会乱跳;
        index = $(this).index();
        // 样式

     $(this).addClass('current').siblings('span').removeClass('current')

    })

})

2、对应图片向左滑动展现在盒子可视区域;

        // 修改盒子ul的animate的left值:把当前按钮的索引号*单个图片宽度,设置为负数则是向左移动
        $('ul').animate({
            "left": - $(this).index() * 350
        })
图片移动原理

3、开启定时器,进行切换,鼠标经过盒子则关闭定时器,离开时打开定时器;

       // 开启定时器每个3s,自动触发点击事件
    var index = 0;
    var span = $('.btn span');
    var timer = setInterval(function() {
        index++;
        if(index > 3) {
            index = 0;
        }
        span.eq(index).trigger('click');
    },2000)
    // 鼠标经过图标盒子清除定时器,离开则打开
    $('.img_box').hover(function() {
        clearInterval(timer);
    },function() {
        timer = setInterval(function() {
            index++;
            if(index > 3) {
                index = 0;
            }
            span.eq(index).trigger('click');
        },2000)
    })

4、鼠标经过时左右箭头显示,离开时隐藏;
点击左箭头,显示上一长图片;
点击右箭头,显示下一张图片

   //点击左边按钮,上一张图片显示;
    $('.arrow_l').click(function() {
        // 点击按钮,获取当前被选定的图片的索引号,因为每点击按钮,图片的索引号都会存给index变量,以点击了左按钮,可以返回当前的index,index--就是上一张图片索引号;
        index--;
        // 当index小于0,比如负数的时候,index=2 跳去第三张
        if(index < 0) {
            index = 2;
        }
        console.log(index);
        // 再自动鼠标点击下一个index的span,就会触发点击事件;
        span.eq(index).trigger('click');
    })

        //点击右边按钮,下一张图片显示;
        $('.arrow_r').click(function() {
            // 点击按钮,获取当前被选定的图片的索引号,因为每点击按钮,图片的索引号都会存给index变量,以点击了右按钮,可以返回当前的index,index++就是下一张图片索引号;
            index++;
            // 当index大于等于3,index=0,又跳到第一张
            if(index >= 3) {
                index = 0;
            }
            console.log(index);
            // 再自动鼠标点击下一个index的span,就会触发点击事件;
            span.eq(index).trigger('click');
        })

HTML

<body>
  <div class="img_box">
      <!-- 图片布局开始 -->
      <ul>
          <li><a href="#"><img src="images/3.jpg" width="100%"></a></li>
          <li><a href="#"><img src="images/4.jpg" width="100%"></a></li>
          <li><a href="#"><img src="images/5.png" width="100%"></a></li>
      </ul>
      <!-- 图片布局结束 -->

      <!-- 按钮布局开始 -->
      <div class="btn">
          <span class="current"></span>
          <span></span>
          <span></span>
      </div>
      <!-- 按钮布局结束 -->

      <!-- 左右箭头开始 -->
      <ol>
          <li class="arrow_l">&lt;</li>
          <li class="arrow_r">&gt;</li>
      </ol>
      <!-- 左右箭头结束 -->
  </div>
</body>

CSS

* {
   padding: 0;
   margin: 0;
   list-style: none;
}
.img_box {
   position: relative;
   height: 220px;
   width: 350px;
   overflow: hidden;
}

.img_box ul {
   width: 1050px;
   position: relative;
   transition: all 0.5s linear;
}

.img_box ul li {
   float: left;
   width: 350px;
}

.img_box .btn {
   position: absolute;
   bottom: 5px;
   right: 5px;
}

.btn span {
   cursor: pointer;
   display: block;
   float: left;
   width: 10px;
   height: 10px;
   border-radius: 50px;
   border: 2px #fff solid;
   margin: 4px;
}

.current {
   background-color: #fff;
}

/* 左右箭头 */
.arrow_l,
.arrow_r {
   position: absolute;
   top: 35%;
   width: 20px;
   height: 30px;
   background-color: rgba(0,0,0,.3);
   font-size: 20px;
   color: #fff;
   display: none;
}
.arrow_r {
   right: 0;
}
上一篇下一篇

猜你喜欢

热点阅读