美文网首页
Jquery 轮播

Jquery 轮播

作者: jrg_memo | 来源:发表于2017-02-08 22:47 被阅读102次

    HTML

    <div class="slide-ct"> // 轮播容器
    
    <ul class="img-ct">   // 图片容器
      <li><a href=" ">< img src=" 1 "  alt="" /></a></li>
      <li><a href=" ">< img src=" 2 "  alt="" /></a></li>
      <li><a href=" ">< img src=" 3 "  alt="" /></a></li>
      <li><a href=" ">< img src=" 4 "  alt="" /></a></li>
    </ul>
    
    <ul class="btn-ct"> // 按钮容器
      <li class="left">  < </li>
      <li class="right"> > </li>
    </ul>
    
    <ul class="dots"> // 下标容器
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
    </div>
    

    CSS

    .slide-ct 轮播容器,作为窗口负责show // position:relative; overflow: hidden;
    .img-ct   图片容器,充满整个窗口位置 //  position:relative;
    .btn-ct   按钮容器,基于窗口中间位置 //  position: absolute; top:50%;
    .dots     下标容器,基于窗口下方位置 //  position: absolute;bottom:10px;
    

    JS

    无缝

    • 原理:
      clone首图放入父容器末;clone尾图放入父容器头。
      丨 show 丨
      clone(img4)丨 img1 丨 img2 丨 img3 丨 img4 丨 clone(img1) 首尾相连,形成循环

    • 核心:
      到达clone位置的时候,切换到原图位置
      丨 show 丨--------切回 ↑
      clone(img4)丨 img1 丨 img2 丨 img3 丨 img4 丨 clone(img1)

    • demo

    • 问题
      1 图片如何放置?
      img:{ float:left } ↑ 图片浮动,在父容器中连城一排
      img-ct 宽度 = img宽度 * (img-ct子元素个数+2) clone后子元素增加2个,宽度需要重新计算
      2 如何切换位置?
      if(curPageIndex === imgLength){ 当下标 = 子元素个数,到达最右需要切换
      $('.img-ct').css({left:-$('img').width()}); 利用position定位,改变left数值
      curPageIndex = 0; 下标回到队首,开始重新计数
      }
      3 防止连续点击?
      使用状态锁
      var isAnimate = false;
      function play(){
      if(isAnimate) return;
      isAnimate = true;
      function done(){
      do something...;
      isAnimate = false;
      }
      }
      4 自动播放
      5 下标添加事件
      6 鼠标移入暂停

    淡入淡出/自动播放

    • 原理
      上一张fadeOut,下一张fadeIn;
      自动播放setInterval,停止播放clearInterval。

    • 核心
      如何确定播放页
      nextpage (curidx+1)%imgLength
      perpage (imgLength+curidx-1)%imgLength)

    • demo

    • 问题
      1 图片如何放置?
      img:position:absolute; 重叠放在父容器内

    相关文章

      网友评论

          本文标题:Jquery 轮播

          本文链接:https://www.haomeiwen.com/subject/tfvbittx.html