網上有不少黑科技解決這個問題,都不是從根本去解決,例如經過js控制彈出時html加上position:fixed; 彈窗關閉後再去掉該樣式,總以爲不太對,像是打補丁。css
今天終於找到了滾動穿透的緣由和完美解決的辦法html
緣由:使用系統的滾動,html和body的高度超出窗口的高度,自動使用系統滾動,這個滾動會致使滾動穿透。web
完美解決方案: 1.在body下的div上使用本身的height:100%; overflow: auto/scoll;(在IOS上不流暢須要加 :-webkit-overflow-scrolling: touch;)htm
2.給html,body 增長{posation:fixed;with100%;height:100%; } 使html,body不會再使用系統滾動;開發
3.發如今安卓手機上完美實現,可是IOS的滾動機制讓令人頭大,依然能夠穿透,這時咱們在彈窗後須要把滾動的div上加上 overflow:hidden;it
在關閉彈窗的時候去掉該屬性,能夠實現IOS的兼容;至此滾動穿透就被解決了。io
感觸:H5開發時有些系統默認功能總會帶來一些未知的坑,功能老是不盡如人意,儘可能本身多寫一寫css使樣式控制在本身的計劃內。webkit