JS实现移动端整屏滑动的实例代码
基本思路:
1)检测手指滑动方向:获取手指抬起时的位置,减去手指按下时的位置,得正即为向下滑动了
2)手指抬起后,向对应反向操作改变当前页的位置
具体代码如下:
html
第一屏
基本思路:
1)检测手指滑动方向:获取手指抬起时的位置,减去手指按下时的位置,得正即为向下滑动了
2)手指抬起后,向对应反向操作改变当前页的位置
具体代码如下:
html
第一屏
css
*{ margin:0; padding:0; } body{ overflow:hidden; } #wrap>div{ width:10rem; position:absolute; left:0; top:0; background:#fff; transition:all0.3sease; } #dots{ position:fixed; right:5px; top:40%; z-index:9; } #dotsspan{ display:block; height:0.2rem; width:0.2rem; border:1pxsolid#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(){ varoDiv=document.getElementById("wrap"); varaPages=oDiv.getElementsByClassName("pages"); varaDots=document.getElementById("dots").getElementsByTagName("span"); varwinH=window.innerHeight; vartTime=1; //设置每页的高度和zindex值 for(vari=0;iwinH/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"); } } }); functiondoSlide(upflag){ for(vari=0;i 好了,在给大家分享一段简单的代码,JS实现移动端整页滑屏示,具体代码如下所示:
移动端整页滑屏示例 *{ padding:0; margin:0; font-family:Verdana; } body, html{ height:100%; background-color:#000000; } .wrap{ width:100%; height:100%; overflow:hidden; } .wrap2{ width:100%; height:1000%; transition:0.3slinear } .page{ width:100%; height:10% } .page{ background-color:#fdfdfd; font-size:100px; line-height:400px; text-align:center; font-weight:bold; } 1 2 3 4 5 6 //重要!禁止移动端滑动的默认事件 document.body.addEventListener('touchmove',function(event){ event=event?event:window.event; if(event.preventDefault){ event.preventDefault() }else{ event.returnValue=false } },false) varpages=function(obj){ varbox=document.getElementById(obj.wrap); varbox2=document.getElementById(obj.wrap2); varlen=obj.len; varn=obj.n; varstartY,moveY,cliH; //获取屏幕高度 vargetH=function(){ cliH=document.body.clientHeight }; getH(); window.addEventListener('resize',getH,false); //touchStart vartouchstart=function(event){ if(!event.touches.length){ return; } startY=event.touches[0].pageY; moveY=0; }; //touchMove vartouchmove=function(event){ if(!event.touches.length){ return; } moveY=event.touches[0].pageY-startY; box2.style.transform='translateY('+(-n*cliH+moveY)+'px)';//根据手指的位置移动页面 }; //touchEnd vartouchend=function(event){ //位移小于+-50的不翻页 if(moveY<-50)n++; if(moveY>50)n--; //最后&最前页控制 if(n<0)n=0; if(n>len-1)n=len-1; //重定位 box2.style.transform='translateY('+(-n*10)+'%)';//根据百分比位置移动页面 console.log(n) }; //touch事件绑定 box.addEventListener("touchstart",function(event){ touchstart(event) },false); box.addEventListener("touchmove",function(event){ touchmove(event) },false); box.addEventListener("touchend",function(event){ touchend(event) },false); }; pages({ wrap:'wrap',//.wrap的id wrap2:'wrap2',//.wrap2的id len:6,//一共有几页 n:0//页面一打开默认在第几页?第一页就是0,第二页就是1 }); 总结
以上所述是小编给大家介绍的JS实现移动端整屏滑动的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
热门推荐
- 返回顶部
- 514930285
- czq8825@qq.com