1. 程式人生 > >JQ實現簡易輪播圖

JQ實現簡易輪播圖

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
  *{margin: 0;padding: 0;list-style:none;}
  div{width: 520px;height: 280px;margin:100px auto;border: 1px solid orangered;overflow: hidden;}
  ul{position: relative;}
  li{position: absolute;top:0;left:0;}
  img{width: 520px;height: 280px;}
  </style>
</head>
<body>
  <div>
    <ul>
      <li><img src="images/01.jpg" alt=""></li>
    </ul>
  </div>
<script src="jquery-3.3.1.js" charset="utf-8"></script>
<script>
  $(function(){
    //資料來源,遍歷img資料路徑
    var imgData=[];
    for(var i=1;i<5;i++){
      imgData.push('images/0'+i+'.jpg');
    }
    //設定索引
    var currentIndex=0;
    //開啟事件
    $(document).click(function(event){
      //獲取螢幕的一半,並定義標記符
      var disX=$(window).width()/2;
      var isLeft=true;
      //判斷,如果點選了左邊部分
      if(disX>=event.pageX){//左邊
        isLeft=true;
        currentIndex--;
        currentIndex=(currentIndex+imgData.length)%imgData.length;//處理邊界值,由於currentIndex會出現負數,所以加上imgData的長度
      }else{
        isLeft=false;
        currentIndex++;
        currentIndex=currentIndex%imgData.length;
      }
      //建立節點
      var imgName=imgData[currentIndex];
      var $li=$('li').clone();//複製li
      $li.children('img').attr('src',imgName);//設定複製的img的src屬性
      $li.prependTo('ul');
      //動畫展示
      if(isLeft){
        $('li:last').animate({
          left:'-520px'
        },500,function(){
          $(this).remove();
        })
      }else{
        $('li:last').animate({
          left:'520px'
        },500,function(){
          $(this).remove();
        })
      }
    })
  })
</script>
</body>
</html>