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实现移动端整屏滑动的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
热门推荐
-
返回顶部
-
3162201930
-
czq8825@qq.com