溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

原生javascript怎么實現(xiàn)移動端滑動banner效果

發(fā)布時間:2022-05-07 10:11:13 來源:億速云 閱讀:142 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹了原生javascript怎么實現(xiàn)移動端滑動banner效果的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇原生javascript怎么實現(xiàn)移動端滑動banner效果文章都會有所收獲,下面我們一起來看看吧。

具體代碼如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta content="telephone=yes" name="format-detection" />
 <meta name="apple-mobile-web-app-status-bar-style" content="white">
 <meta name="x5-fullscreen" content="true">
 <meta name="apple-touch-fullscreen" content="yes">
 <title>Document</title>
 <style>
  *{margin:0;padding:0;}
  .box{
   height:200px;
   width:100%;
   overflow: hidden;
  }
  .movebox{
   height:200px;
   width:9000px;
   padding:0;
   position:relative;
   left:0;
  }
  .movebox li{
   height:200px;
   float:left;
   list-style:none;
   font-size:30px;
   color:#fff;
  }

 </style>
 <script>
  window.onload = function(){

   var moveX,  //手指滑動距離
    endX,  //手指停止滑動時X軸坐標
    cout = 0, //滑動計數(shù)器
    moveDir; //滑動方向
   var movebox = document.querySelector(".movebox"); //滑動對象
   var Li = movebox.querySelectorAll("li"); //滑動對象item
   var width = parseInt(window.getComputedStyle(movebox.parentNode).width); //滑動對象item的寬度

   movebox.style.width = (width*4) + "px"; //設置滑動盒子width
   for(var i = 0; i < Li.length; i++){
    Li[i].style.width = width + "px"; //設置滑動item的width,適應屏幕寬度
   }

   //觸摸開始
   function boxTouchStart(e){
    var touch = e.touches[0]; //獲取觸摸對象
    startX = touch.pageX; //獲取觸摸坐標
    endX = parseInt(movebox.style.webkitTransform.replace("translateX(", "")); //獲取每次觸摸時滑動對象X軸的偏移值
   }

   function boxTouchMove(e){
    var touch = e.touches[0];
    moveX = touch.pageX - startX; //手指水平方向移動的距離

    if(cout == 0 && moveX > 0){  //剛開始第一次向左滑動時
     return false;
    }

    if(cout == 3 && moveX < 0){  //滑動到最后繼續(xù)向右滑動時
     return false;
    }

    movebox.style.webkitTransform = "translateX(" + (endX + moveX) + "px)"; //手指滑動時滑動對象隨之滑動
   }

   function boxTouchEnd(e){
    moveDir = moveX < 0 ? true : false;  //滑動方向大于0表示向左滑動,小于0表示向右滑動
    //手指向左滑動
    if(moveDir){

     if(cout<3){
      movebox.style.webkitTransform = "translateX(" + (endX-width) + "px)";
      cout++;
     }
    //手指向右滑動
    }else{
     //滑動到初始狀態(tài)時返回false
     if(cout == 0){
      return false;
     }else{
      movebox.style.webkitTransform = "translateX(" + (endX+width) + "px)";
      cout--;
     }
    }
   }

   //滑動對象事件綁定
   movebox.addEventListener("touchstart", boxTouchStart, false);
   movebox.addEventListener("touchmove", boxTouchMove, false);
   movebox.addEventListener("touchend", boxTouchEnd, false);
  }
 </script>
</head>

<body >
 <div class="box">
  <ul class="movebox" >
   <li >1</li>
   <li >2</li>
   <li >3</li>
   <li >4</li>
  </ul>
 </div>
</body>

</html>

關于“原生javascript怎么實現(xiàn)移動端滑動banner效果”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“原生javascript怎么實現(xiàn)移動端滑動banner效果”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI