ios系統滾動穿透

2022-05-03 02:00:11 字數 859 閱讀 8571

這次的場景不一樣

結構是彈窗篩選框,篩選維度多一些會出現滾動條,內容少一些就沒有滾動條

問題1

問題2

如果彈出框內容較少時,沒有撐出滾動條情況下,手指繼續滾動會出現底部內容滾動(滾動穿透)

解決方式

=> 如果篩選框不含滾動就直接@touchmove.prevent就可以

=> 動態包含滾動條的彈窗穿透問題解決思路是:判斷篩選框是否撐出滾動條,如果是,設定禁止滾動事件,否則正常

**如下

篩選框滾動內容的最外層div 新增touchmove事件

ps: 我看到很多例子是用下面**   我嘗試了  並沒有效果 ,如果單獨配置到含有滾動條的頁面感覺不是很有共性,所以自己研究了上面的解決方式,不知道會不會有其他bug。如果有,歡迎一起討論,扔磚指正 

bodyscroll (event) ,

/*** 禁止頁面滾動,解決彈框出現時 ios 上滾動穿透的問題

*/forbidbodyscroll () ,

/*** 解除禁止滾動,解決彈框出現時 ios 上滾動穿透的問題

*/allowbodyscroll () ,

滾動穿透問題

眾所周知,移動端有fixed遮罩或彈出層時,螢幕上滑動,後面的背景也會跟著滾動,強迫症的我總是覺得不舒服。然而也沒有找到完美的解決方法。這裡說說兩種能用的方法。1 遮罩或彈層沒有滾動的內容時 vue裡提供了乙個很好用的解決辦法 touchmove.prevent 如果不用vue的話,那就監聽touc...

移動端滾動穿透問題

一 body。一般pc端這樣就行了,但在移動端可就不行了,因為他有touchmove。二 可以阻止彈層的touchmove事件,但如果你的彈層內的內容需要滑動,這種方法pass document.body.addeventlistener touchmove function e 三 後來找到乙個比...

ios滾動穿透問題的兩個解決方案

1 當觸控元素有 webkit overflow scrolling樣式時,若觸控元素有滾動條,則不會發生滾動穿透,若觸控元素無滾動條,則touchmove事件依然會穿透至檢視下層帶有 webkit overflow scrolling的元素上。一般彈框是這種情況,這也是需要主要處理情況,而且這並不...