JavaScript實(shí)現(xiàn)移動(dòng)端彈窗后禁止?jié)L動(dòng)
代碼如下
computed:{
popupStatus(){
return this.SendCircle_visible || this.generateInfo_visible || this.isPosterShow;
}
},
methods:{
stopTouch(e){
e.preventDefault();
},
},
watch: {
popupStatus(val) {
let preD = this.stopTouch;
let options = {
passive: false, //強(qiáng)調(diào)默認(rèn)事件
capture: true, //早點(diǎn)禁止該事件
};
if (val) {
document.body.style.overflow = 'hidden';
document.addEventListener('touchmove', preD, options); // 禁止頁面滑動(dòng)
} else {
document.body.style.overflow = ''; // 出現(xiàn)滾動(dòng)條
document.removeEventListener('touchmove', preD, options);
}
}
}
配置說明
addEventListener目前第三個(gè)參數(shù)可以為布爾值或?qū)ο?/p>
addEventListener(type, listener[, useCapture ])
addEventListener(type, listener[, options ])
為對(duì)象時(shí)默認(rèn)配置如下
capture: false
passive: false
once: false
其中 capture 屬性等價(jià)于以前的 useCapture 參數(shù);once 屬性就是表明該監(jiān)聽器是一次性的,執(zhí)行一次后就被自動(dòng) removeEventListener 掉。
passive是因?yàn)闉g覽器無法預(yù)先知道一個(gè)監(jiān)聽器會(huì)不會(huì)調(diào)用 preventDefault(),只有等監(jiān)聽器執(zhí)行完后再去執(zhí)行默認(rèn)行為,因此就會(huì)導(dǎo)致頁面卡頓。而一旦passive為true,瀏覽器就可以直接執(zhí)行默認(rèn)行為而不等待。此時(shí)即使調(diào)用了 preventDefault() 也不會(huì)生效。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
select自定義小三角樣式代碼(實(shí)用總結(jié))
這篇文章主要介紹了select自定義小三角樣式,通過css HTML js 代碼詳細(xì)展示了操作過程,自定義小三角樣式,也可以做出select文字居中的效果,需要的朋友可以參考下2017-08-08
靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML
靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML...2006-08-08
js實(shí)現(xiàn)div閃爍原理及實(shí)現(xiàn)代碼
閃爍的原理是什么呢:其實(shí)就一個(gè),display在none與block之間頻繁的交替,這樣說你明白了么,示例代碼如下,希望對(duì)大家有所幫助2014-06-06
setTimeout 函數(shù)在前端延遲搜索實(shí)現(xiàn)中的作用詳解
這篇文章主要為大家介紹了setTimeout 函數(shù)在前端延遲搜索實(shí)現(xiàn)中的作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
解決window.opener=null;window.close(),只支持IE6不支持IE7,IE8的問題
本篇文章主要是對(duì)window.opener=null;window.close(),只支持IE6不支持IE7,IE8的解決方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01

