移動端 H5 滑動穿透 (完美解決)

移動端H5 的滑動穿透問題 很是讓人頭疼  網上找了各種解決方案  都不是很完美,

於是自己 想了各種辦法 終於決解了  (暫時未發現BUG)

首先滑動 穿透的分類 

一   給body加 超出隱藏

這種情況的小夥伴  簡單的將 body 來個 overflow: hidden; 即可解決,

弊端:當你 往下滑動了 很多後  overflow: hidden 將會把頁面 返回頂部;

二   阻止滑動事件

當彈出層出來的 時候 禁止掉 默認的滑動事件 

document.querySelector('body').addEventListener('touchmove', function (event) {
         event.preventDefault();
  });

弊端:當你彈出層 也需要滑動時  將無法滑動;

三  完美解決 方案

1,不要用系統默認的超出滑動 也就是說 你要自己寫個 DIV  讓其 overflow: scroll;(避免系統默認的 滑動事件)

2,整個 html 要用  position: fixed; 禁止用戶用的(不禁止 會影響體驗);

3,如此設計後 你會發現 滑動穿透 已經好了  因爲你根本沒有用系統的 滑動,所以不會穿透,可是萬惡的 IOS 來搞事情了,滑動會 沒有慣性,用起來很不爽,於是在網上找到 

-webkit-overflow-scrolling : touch;

這個代碼 是加慣性的 ,加上後慣性是好了,但是穿透問題又出來了,所以我們要在 彈出層出來的時候 去掉這個屬性,就不會穿透 彈出層消失的 時候在增加這個屬性 就可以有慣性了,至此 完美解決  

4 有任何問題 隨時留言 大家共同學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章