国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS實現移動端整屏滑動的實例代碼

2024-05-06 15:24:34
字體:
來源:轉載
供稿:網友

基本思路:

1)檢測手指滑動方向:獲取手指抬起時的位置,減去手指按下時的位置,得正即為向下滑動了

2)手指抬起后,向對應反向操作改變當前頁的位置

具體代碼如下:

html

<div id="wrap">  <div id="page01" class="pages">第一屏</div>  <div id="page02" class="pages">第二屏</div>  <div id="page03" class="pages">第三屏</div>  <div id="page04" class="pages">第四屏</div></div><div id="dots">  <span class="now"></span><span class=""></span><span class=""></span><span class=""></span></div>

css

*{      margin:0;      padding:0;    }    body{      overflow: hidden;    }    #wrap > div{      width: 10rem;      position: absolute;      left: 0;      top: 0;      background: #fff;      transition: all 0.3s ease;    }    #dots{      position: fixed;      right: 5px;      top: 40%;      z-index: 9;    }    #dots span{      display: block;      height: 0.2rem;      width: 0.2rem;      border: 1px solid #000;      border-radius: 50%;      margin-bottom: 3px;    }    #dots .now{      background: #555;    }

js分為兩塊

第一,設置html標簽的font-size,以便設置rem的基數 (放在頁面頭部)

document.getElementsByTagName("html")[0].style.fontSize = window.innerWidth/10 + "px";

第二,具體的滑動操作代碼

 window.onload = function(){      var oDiv = document.getElementById("wrap");      var aPages = oDiv.getElementsByClassName("pages");      var aDots = document.getElementById("dots").getElementsByTagName("span");      var winH = window.innerHeight;      var tTime = 1;      //設置每頁的高度和zindex值      for(var i=0; i<aPages.length; i++){        aPages[i].style.height = winH + "px";        aPages[i].style.zIndex = 1;      }      aPages[0].style.zIndex = 3;      aPages[1].style.zIndex = 2;      oDiv.style.height = winH + "px";      //手指拖動事件(去除默認動作)      document.addEventListener("touchmove",function(e){        e.preventDefault();      });      var YStart = 0;      var iNow = 0;      //手指按下      oDiv.addEventListener("touchstart",function(e){        YStart = e.changedTouches[0].clientY;      });      //手指移動      oDiv.addEventListener("touchmove",function(e){        disY = e.changedTouches[0].clientY-YStart; //向下滑正,向上滑負      });      //手指離開      oDiv.addEventListener("touchend",function(e){        disY = e.changedTouches[0].clientY-YStart; //向下滑正,向上滑負        if(Math.abs(disY)>winH/20){ //只有當滑動距離大于了一定值得時候,才執行切換          if(disY<0){            iNow++;            if(iNow>=aDots.length){              iNow = 0;            }            aPages[0].style.transform = "translateY("+ -winH +"px)";            doSlide();          }else{            iNow--;            if(iNow<0){              iNow = aDots.length-1;            }            aPages[0].style.transform = "translateY("+ winH +"px)";            doSlide("up");          }        }      });      function doSlide(upflag){        for(var i=0;i<aDots.length;i++){          aDots[i].className = "";        }        aDots[iNow].className = "now";        if(upflag){            //向上滑            aPages[3].style.zIndex = 2;            aPages[1].style.zIndex = 1;            oDiv.insertBefore(aPages[3],aPages[1]);            setTimeout(function(){              aPages[1].style.transform = "translateY(0px)";              aPages[1].style.zIndex = 2;              aPages[0].style.zIndex = 3;            },300)        }else{          setTimeout(function(){            aPages[0].style.transform = "translateY(0px)";            aPages[0].style.zIndex = 1;            aPages[1].style.zIndex = 3;            aPages[2].style.zIndex = 2;            oDiv.appendChild(aPages[0]);          },300)        }      }    }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宜君县| 全州县| 盐边县| 巫溪县| 陆丰市| 阳高县| 额尔古纳市| 云和县| 凌源市| 黔江区| 措勤县| 凤城市| 宾川县| 潞西市| 海兴县| 固镇县| 桃园县| 大理市| 洛浦县| 博爱县| 江阴市| 西城区| 华蓥市| 宁化县| 丹巴县| 大同县| 鄂尔多斯市| 桦川县| 景德镇市| 吉木乃县| 麻栗坡县| 岳西县| 宁晋县| 家居| 凤翔县| 蒙阴县| 喀什市| 满城县| 东乌珠穆沁旗| 常山县| 井研县|