日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

CSS3中-webkit-overflow-scrolling: touch 的使用方法详解

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 CSS3中-webkit-overflow-scrolling: touch 的使用方法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

-webkit-overflow-scrolling屬性控制元素在移動設備上是否使用滾動回彈效果.

auto

使用普通滾動, 當手指從觸摸屏上移開,滾動會立即停止。touch使用具有回彈效果的滾動, 當手指從觸摸屏上移開,內容會繼續保持一段時間的滾動效果。繼續滾動的速度和持續的時間和滾動手勢的強烈程度成正比。同時也會創建一個新的堆棧上下文。-webkit-overflow-scrolling是真的創建了帶有硬件加速的系統級控件,所以效率很高。但是這相對是耗更多內存的,最好在產生了非常大面積的overflow時才應用。需求是需要手動設置滾動高度的,js代碼是

el.scrollTop = 500;

此時,我發現在IOS環境下,每次手動改變scrollTop后整個容器變成空白,但手指觸摸一下內容就出來了,scrollTop是成功改變了的,只是內容繪制出錯。(這里我個人判斷是瀏覽器底層的問題,因為安卓不存在這問題)

我通過用延遲加載,延遲設置滾動,或者是手動改變容器中的內容來強制重繪,可惜都不起作用,最終找到問題出在-webkit-overflow-scrolling: touch,因為當我把值設置為auto時BUG不存在。

思路出來了,在手動設置scrollTop前,先關閉慣性滾動,待設置完成后重新開啟即可。

貼上解決代碼:

el.WebKitOverflowScrolling = 'auto';
el.scrollTop = 500;
el.WebKitOverflowScrolling = 'touch';

查了一下網上的資料,H5端代碼就不再敷述了,看一下Native處理

-webkit-overflow-scrolling: touch 的流程如下:

實際上,Safari真的用了原生控件來實現,對于有-webkit-overflow-scrolling的網頁,會創建一個UIScrollView,提供子layer給渲染模塊使用

要實現這個效果很簡單,只需要加一行css代碼即可:

總結

以上是生活随笔為你收集整理的CSS3中-webkit-overflow-scrolling: touch 的使用方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。