在触屏写的一些弹层总会引发不同浏览器里面的bug。
比如下图左侧窗口出现的时候,用户在拖拽右侧的body区域就会在某些浏览器里引发一些bug。
索性干掉这个方法,在弹层显示时不让用户拖拽页面。
引用的方法
//body一屏显示禁止上下拖拽
setPreventDefault.start();
//取消事件
setPreventDefault.end();
/*禁止浏览器滚动*/ var setPreventDefault = { hasClass: false,//判断有没有插入样式 oldScrollTop : 0,/*记录滚动条位置*/ docEle : document.documentElement, /*开始*/ start:function(){ if(!this.hasClass){this.addClass();} this.oldScrollTop = this.docEle.scrollTop || document.body.scrollTop; this.docEle.className = 'setPreventDefault'; }, /*结束*/ end:function(){ this.docEle.className = ''; window.scrollTo(0,this.oldScrollTop); }, addClass:function(){ var style = document.createElement('style'); style.innerHTML = '.setPreventDefault,.setPreventDefault body{height:100%;width:100%; position:absolute;top:0;left:0;overflow:hidden}'; document.body.appendChild(style); this.hasClass = true; } };