摘要:而中的網頁本身就是一個大的,在脫離文檔流的定位時,子元素的高度如果沒有在建立之前確定,就不會觸發內部滑動,而會觸發外部滑動。分析父元素不脫離文檔流時,無此。更新此問題的深層原因找到了,詳情請見瀏覽器上元素無法滾動深究
描述
此bug出現需要條件:父元素需使用絕對定位absolute或固定定位fixed,使用overflow: scroll / auto(或overflow-y: scroll / auto),內部子元素是動態大小(例如較大的svg document,近似為內嵌iframe,等等)。
bug出現原因:沒有相關官方文檔描述該bug。在查閱文檔及自己測試的時候總結:iOS safari 會將overflow:scroll的元素識別為一個多帶帶的 ScrollView,并予以一個 -webkit-overflow-scrolling 屬性為auto。而safari中的網頁本身就是一個大的ScrollView,在脫離文檔流的定位時,子元素的高度如果沒有在ScrollView建立之前確定,就不會觸發內部滑動,而會觸發外部滑動。
關于 -webkit-overflow-scrolling:Safari CSS Reference官方是這樣描述的:
Specifies whether to use native-style scrolling in an overflow:scroll element.
即該屬性會讓overflow:scroll的元素擁有像iOS原生一樣順滑的滑動效果。為了實現此目標,safari將所有overflow:scroll的元素用原生創建一個ScrollView,當-webkit-overflow-scrolling屬性為touch時,啟用硬件加速,出現順滑效果。
分析父元素不脫離文檔流時,無此bug。
父元素在不指定 -webkit-overflow-scrolling:touch時必定出現無法滑動的問題。
當內部元素為正常的html元素時,無此bug。
當為父元素重新設置overflow屬性時,可能會導致safari重建ScrollView而bug消失。(之前版本的實驗室用這種方法解決的,但新海外版不能用這種方法fix,所以是可能)
解決方法:據以上分析以及大量測試得出完美解決方法為:
必須為所有在移動端的overflow: scroll元素增加屬性 -webkit-overflow-scrolling: touch。
當父元素可不脫離文檔流時不要脫離文檔流。
在子元素iframe加載完成后可異步將父元素的overflow: scroll屬性重寫(此方法可能不成功)。
如以上沒有解決,則給予子元素一個min-height,大小不限(略大于效果最好),幫助safari建立ScrollView(親測最有效)。
更新此問題的深層原因找到了,詳情請見:iOS safari瀏覽器上overflow: scroll元素無法滾動bug深究
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/112979.html
摘要:而中的網頁本身就是一個大的,在脫離文檔流的定位時,子元素的高度如果沒有在建立之前確定,就不會觸發內部滑動,而會觸發外部滑動。分析父元素不脫離文檔流時,無此。更新此問題的深層原因找到了,詳情請見瀏覽器上元素無法滾動深究 描述 此bug出現需要條件:父元素需使用絕對定位absolute或固定定位fixed,使用overflow: scroll / auto(或overflow-y: scr...
摘要:前情提要在之前我寫過一篇文章瀏覽器上元素無法滑動解決方法整理,這篇文章寫的是,當瀏覽器上出現大于父容器的元素,想給父容器加上實現內部滾動效果而失敗的總結。解決方法反其道而行之。當子元素加載完成時,將包裹元素撐開,父元素便可以自由滾動了。 前情提要 在之前我寫過一篇文章:iOS safari瀏覽器上overflow: scroll元素無法滑動bug解決方法整理,這篇文章寫的是,當iOS ...
摘要:前情提要在之前我寫過一篇文章瀏覽器上元素無法滑動解決方法整理,這篇文章寫的是,當瀏覽器上出現大于父容器的元素,想給父容器加上實現內部滾動效果而失敗的總結。解決方法反其道而行之。當子元素加載完成時,將包裹元素撐開,父元素便可以自由滾動了。 前情提要 在之前我寫過一篇文章:iOS safari瀏覽器上overflow: scroll元素無法滑動bug解決方法整理,這篇文章寫的是,當iOS ...
摘要:同時,請在其他移動端瀏覽器也這么處理,不要只對蘋果做這些處理。蘋果對于虎頭蛇尾的做法真讓人頭疼,這作風跟巨硬真像。 轉載請注明英文原文及譯文出處 原文地址:Issues with position fixed & scrolling on iOS 原文作者:Remy Sharp譯文地址:移動端 fixed 和 scroll 問題 譯文作者:鎏金圣手火麒麟 最近在做iOS端的H5頁面...
閱讀 3596·2020-12-03 17:42
閱讀 2768·2019-08-30 15:54
閱讀 2222·2019-08-30 15:44
閱讀 570·2019-08-30 14:08
閱讀 969·2019-08-30 14:00
閱讀 1102·2019-08-30 13:46
閱讀 2784·2019-08-29 18:33
閱讀 2886·2019-08-29 14:11