js禁⽌允许页⾯滚动
⽅法⼀:IOS允许滚动会⽆效
function scrControl(t){
js控制滚动条
if(t == 0){ //禁⽌滚动
document.body.addEventListener('touchmove', function (e) {
e.preventDefault();
}, { passive: false });  //passive 参数不能省略,⽤来兼容ios和android
}else if( t == 1){ //允许滚动
document.body.addEventListener('touchmove', function (e) {
}, {passive: false});
}
}
passive,设置该属性的⽬的主要是为了在阻⽌事件默认⾏为导致的卡顿。等待的执⾏是耗时的,有些甚⾄耗时很明显,这样就会导致页⾯卡顿。即便是个空,也会产⽣⼀定的卡顿,毕竟空的执⾏也会耗时。加上{ passive: false }能防⽌页⾯卡顿。
可以通过传递 passive 为 true 来明确告诉,事件处理程序不会调⽤ preventDefault 来阻⽌默认滑动⾏为。
如果设置了passive为true,同时⼜阻⽌默认⾏为,阻⽌是不⽣效的。
document.addEventListener("touchmove", function(event) {
event.preventDefault() //不产⽣作⽤
}, {passive: true});
⽅法⼆:兼容IOS
function bodyScroll(event){
event.preventDefault();
}
function scrControl(t){
if(t == 0){ //禁⽌滚动
document.body.addEventListener('touchmove', this.bodyScroll, { passive: false });
}else if( t == 1){ //开启滚动
veEventListener('touchmove',this.bodyScroll, {passive: false});
}
}
⽅法三:
/
/禁⽌页⾯滑动
stop(){
var mo=function(e){passive: false ;};
document.body.style.overflow='hidden';
document.addEventListener("touchmove",mo,false);//禁⽌页⾯滑动
},
//取消滚动限制
move(){
var mo=function(e){passive: false };
document.body.style.overflow='';//出现滚动条
},

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。