1. 程式人生 > >vue 彈框產生的滾動穿透問題的解決

vue 彈框產生的滾動穿透問題的解決

最近開發過程中遇到一些小問題(似乎問題總是那麼多),但一直沒什麼時間去優化與解決。程式設計師不能被業務綁架,有時間還是花點在程式碼,開始這次的vue嘗試吧。

首先定義一個全域性樣式:

前端精品教程:百度網盤下載

?
1 2 3 4 5 6 .noscroll{    position : fixed ;    left : 0 ;    top : 0
;    width : 100% ; }

建立一個dom.js檔案,定義幾個方法:

前端精品教程:百度網盤下載

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 export function hasClass(el, className) {    let reg = new RegExp( '(^|\\s)' + className + '(\\s|$)' )    return reg.test(el.className) }    export function addClass(el, className) {    if (hasClass(el, className)) {      return    }    if (el.className === '' ){      el.className += className    } else {      let newClass = el.className.split( ' ' )      newClass.push(className)      el.className = newClass.join( ' ' )    }     }   export function removeClass(el,className) {    if (hasClass(el, className)) {      el.className = el.className.replace( new RegExp( '(\\s|^)' + className + '(\\s|$)' ), '' );    }; }

獲取<html>標籤的DOM:

?
1 this .htmlDom = document.getElementsByTagName( 'html' )[0];

在彈框彈出來的時候:

前端精品教程:百度網盤下載

?
1 addClass( this .htmlDom, 'noscroll' );

彈框關閉的時候

?
1 removeClass( this .htmlDom, 'noscroll' );

這樣就可以解決滾動穿透的問題了~