移动端上下滑屏问题
设计图上有这样的展示 第一屏100%高,剩下的高度很长很长,现有这样的需求,向上滑动第一屏的时候直接跳到后面的内容,后面的内容正常滚动即可,不需要滑屏的效果,找了好多滑屏的插件(swipe,fullpage等)都不满足这样的需求,后来百度找到这样的代码
var xx,yy,XX,YY,swipeX,swipeY ;
var divelem = document.getElementById("swipearea")
divelem.addEventListener('touchstart',function(event){
event.stopPropagation();//阻止冒泡
event.preventDefault();//阻止浏览器默认事件
xx = event.targetTouches[0].screenX ;
yy = event.targetTouches[0].screenY ;
swipeX = true;
swipeY = true ;
})
divelem.addEventListener('touchmove',function(event){
XX = event.targetTouches[0].screenX ;
YY = event.targetTouches[0].screenY ;
if(swipeX && Math.abs(XX-xx)-Math.abs(YY-yy)>0) //左右滑动
{
event.stopPropagation();//阻止冒泡
event.preventDefault();//阻止浏览器默认事件
swipeY = false ;
//左右滑动
}
else if(swipeY && Math.abs(XX-xx)-Math.abs(YY-yy)<0){ //上下滑动
swipeX = false ;
//上下滑动,使用浏览器默认的上下滑动
if((YY-yy) < -10){
$('html,body').animate({
"scroll-top": $(window).innerHeight()
}, 500);
swipeY = false ;
}
if((YY-yy) > 10){
$('html,body').animate({
"scroll-top": 0
}, 500);
swipeY = false ;
}
//
}
})
divelem.addEventListener('touchend',function(event){
event.stopPropagation();//阻止冒泡
event.preventDefault();//阻止浏览器默认事件
})
第一屏滑屏的效果是实现了,但是第一屏上的a标签及各种点击事件也都被屏蔽了,请问高手该如何解决
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
过了第一层的容器(装下边内容的容器和第一层容器同级)pointer-events: none;试一下呢