輪播圖

css部分

.page {
  width: 740px;
  height: 350px;
  float: left;
  margin: 10px 10px 0 10px;
  overflow: hidden;
  position: relative;
}

.page ul {
  position: absolute;
  left: 0;
}

.lli {
  float: left;
}

.uul {
  width: 900%;
  height: 100%;
}

.d-ol {
  position: absolute;
  right: 12px;
  bottom: 12px;
  height: 19px
}

.ool {
  list-style-type: none;
}

.ool li {
  float: left;
}

.ool li span {
  display: inline-block;
  width: 18px;
  height: 18px;
  line-height: 18px;
  overflow: hidden;
  margin-left: 7px;
  color: #333;
  text-align: center;
  cursor: pointer;
  background: url(../images/imgPlayer.png) no-repeat -28px -90px;
}

li.active span {
  color: #fff;
  background-position: 0 -90px;
}

.prev {
  display: none;
  background: url(../images/newx-flash.png) no-repeat 0 0;
  left: 20px;
  width: 36px;
  cursor: pointer;
  position: absolute;
  top: 152px;
  height: 50px;
  overflow: hidden;
}

.next {
  display: none;
  background: url(../images/newx-flash.png) no-repeat -47px 0;
  right: 10px;
  width: 36px;
  cursor: pointer;
  position: absolute;
  top: 152px;
  height: 50px;
  overflow: hidden;
}


複製代碼

html部分css

<div class="page">
          <ul class="uul">
            <li class="lli"><img src="./images/l1.jpg" alt=""></li>
            <li class="lli"><img src="./images/l2.jpg" alt=""></li>
            <li class="lli"><img src="./images/l3.jpg" alt=""></li>
            <li class="lli"><img src="./images/l4.jpg" alt=""></li>
            <li class="lli"><img src="./images/l5.jpg" alt=""></li>
            <li class="lli"><img src="./images/l6.jpg" alt=""></li>
            <li class="lli"><img src="./images/l7.jpg" alt=""></li>
            <li class="lli"><img src="./images/l8.jpg" alt=""></li>
            <li class="lli"><img src="./images/l1.jpg" alt=""></li>

          </ul>
          <div class="d-ol">
            <ol class="ool">
              <li class="active"><span>1</span></li>
              <li><span>2</span></li>
              <li><span>3</span></li>
              <li><span>4</span></li>
              <li><span>5</span></li>
              <li><span>6</span></li>
              <li><span>7</span></li>
              <li><span>8</span></li>

            </ol>
          </div>
          <i class="prev"></i>
          <i class="next"></i>


        </div>
          <script src="./js/animate.js"></script>


複製代碼

js部分,以前分享了一個封裝的動畫函數 這裏須要引入一下 主要思路就是 根據動畫函數 每兩秒讓 定義的i加一 這樣每兩秒他就換到了一個新的圖片 多了一張圖片是爲了實現無縫輪播 在顯示最後一張圖片以後 讓他下一張顯示第一張圖片 緊接着讓整個ul的left=0 他會瞬間回到第一張圖片 這樣 就完成了 從頭開始的操做 。html

var oView = document.querySelector('.page');

var viewWidth = oView.offsetWidth;
// 3.獲取ul
var uUl = document.querySelector('.uul');
console.log(uUl);

var uLi = document.querySelectorAll('.lli');
//獲取下面的圓點
var oOl = document.querySelector('.ool');
var oLi=document.querySelectorAll('.ool li')

var prevBtn = document.querySelector('.prev');

var nextBtn = document.querySelector('.next');

var num = 0;

var timeId = setInterval(fn, 1500)
//圖片運動的方法

function fn() {

  if (num == uLi.length - 1) {

    num = 0;

    uUl.style.left = 0 + 'px';
  }

  num++;

  animate(uUl, -num * viewWidth);
// 焦點樣式
  if (num > oLi.length - 1) {

      oLi[oLi.length-1].className = "";

      oLi[0].className = 'active';
  } else {
   
    for (var j = 0; j < oLi.length; j++) {

      oLi[j].removeAttribute('class');
    }


    oLi[num].className = 'active';
  }

  
}
// 下一張圖片

nextBtn.onclick = fn;

// 上一張圖片
prevBtn.onclick = function () {
  if (num == 0) {
    num = uLi.length - 1;
    uUl.style.left = -num * viewWidth + 'px';
  }

  num--;
 
  animate(uUl, -num * viewWidth);



  for (var j = 0; j < oLi.length; j++) {

    oLi[j].removeAttribute('class');
  }


  oLi[num].className = 'active';
}
// 點擊按鈕換圖片
for (var i = 0; i < oLi.length; i++) {
  (function (i) {
    oLi[i].onclick = function () {
      // var dis = index - i;
      console.log(i);
    
      for (var j = 0; j < oLi.length; j++) {
        oLi[j].className = ' ';

      }
      this.className = 'active';
      uUl.style.left = -i * viewWidth + 'px'
      // console.log(this.index);
                // clearInterval(timeId);
                
    /*這裏讓num=i 是爲了解決當點擊下面的小圓點 圖片雖然會跳轉到  對應的圖片位置
    可是 當移出以後 輪播圖會回到 原來中止的位置 繼續播放  可是當我讓 圓點的索引和
    圖片的索引相等的時候 他會在當前位置繼續播放
    */
      num = i;

    
    }
  })(i)

}
// 鼠標移入 讓輪播圖暫停
oView.onmouseover = function () {
  clearInterval(timeId);
  prevBtn.style.display = 'block';
  nextBtn.style.display = 'block';

  
}
// 鼠標移出 讓輪播圖繼續
oView.onmouseout = function () {
  timeId = setInterval(fn, 1500);
  prevBtn.style.display = 'none';
  nextBtn.style.display = 'none';

}

複製代碼
相關文章
相關標籤/搜索