歡迎您光臨本站 註冊首頁

微軟如何改進 Microsoft Edge 的滾動效果?

←手機掃碼閱讀     admin @ 2020-04-06 , reply:0

微軟 Microsoft Edge 團隊在博客分享了他們如何改進新版 Edge 的滾動效果,包括改進滾動動畫和優化滾動體驗(交互和外觀)。

在舊版 Edge 中,團隊通過與操作系統 Compositor (DirectComposition) 和輸入 API (Direct Manipulation) 的緊密集成,實現了與 Windows 系統一致的平滑滾動效果(Smooth Scrolling)。由於兩者都是微軟的產品,所以 Edge 團隊在實現此效果上並沒有太大的阻礙。

不過與操作系統緊密集成的弊端也顯而易見 —— 難以將同樣的體驗移植到其他操作系統上,其中就包括舊版 Windows 系統。更糟糕的是,此方案雖然獨立於瀏覽器主線程來處理輸入和輸出以提升響應速度,並提供了穩定的幀率,但這對於根據幀更新執行更新的腳本卻效果不佳,從而導致出現抖動的情況,這也是當時團隊收到的最常見反饋之一。

為此,在新版 Microsoft Edge 中,團隊從過去的經驗中吸取教訓,希望改進 Microsoft Edge 和所有基於 Chromium 的瀏覽器的滾動效果,並在最開始的時候就明確了一件事:僅僅把此前與 Windows 操作系統同樣的依賴關係照搬過來是不可行的,因為 Microsoft Edge 和其他基於 Chromium 的瀏覽器在兼容性和跨平台要求上有很高的標準。

在此基礎上,Edge 團隊再考慮到用戶反饋和技術方案,以及開源準則,他們決定先將精力最大程度地集中在優化滾動效果和提升性能上。

總結起來,Edge 團隊對 Microsoft Edge 滾動效果的改進包括:

  • 改進滾動動畫曲線

  • 使用基於百分比的滾動

  • 引入滾動到底時的回彈效果

  • 引入舊版本 Edge 的部分滾動效果

改進滾動動畫曲線

改進后的動畫曲線使得滾動速度的變化更自然,滾動時間稍微變長,讓用戶更能感受到動畫效果。簡單來說,這條曲線讓通過滑鼠滾輪、鍵盤或滾動條進行的滾動以及觸控滾動都有了舊版 Edge 中的順滑效果。

Chromium 的部分上游變化:

使用基於百分比的滾動(Percent-based scrolling)

滑動滾動條時,Chromium 使用了固定的的滾動增量值(使用滑鼠滾輪增加 100px,使用滾動條的點擊按鈕或鍵盤箭頭增加 40px)。Edge 團隊改變了這一行為,它採用舊版 Edge 中的方案:通過滾動條高度來計算滾動增量值而不是,這樣做的好處是當滾動條高度較小時,瀏覽器依然能提供合理的滾動範圍以瀏覽內容。

Chromium 的部分上游變化:

引入滾動到底時的回彈效果(Overscroll bounce)

Overscroll bounce 主要是向用戶發出一個信號,告知他們已滾動至頁面的底部或頂部,類似的效果也被稱為橡皮筋特效或彈性滾動。Microsoft Edge 為任何方向的滾動都加入了此效果。

引入舊版 Edge 的部分滾動效果

scroll chaining vs. scroll latching

scroll chaining 是舊版 Edge 使用的方案,它提供的效果是當子滾動條到達邊界時,父滾動條會自動跟隨滾動。

類似的場景,Chromium 已經有了 scroll latching 的概念,兩者不同之處在於後者將所有的滾動操作集中到同一個滾動跳上。Edge 團隊指出幾乎所有用戶都更喜歡 scroll chaining (97% 好評),所以他們決定在 Microsoft Edge 中使用 scroll chaining,不過不打算將其引入 Chromium。

慣性滑動加速(Fling boosting)

此效果主要是提升快速滾動頁面時的速度,同時整合了動畫曲線。例如當用戶希望快速拉至頁面底部,fling boosting 不但提供了友好的動畫效果,還加快了滾動速度。

微軟希望 Microsoft Edge 不完全照搬 EdgeHTML 的方案,而是結合 Chromium 和 EdgeHTML 的優點進行改進。為此,他們正在評估其他效果,並研究如何在即將到來的更新中應用這些改進,這些效果目前包括:

  1. 子滾動條中的回彈效果(overscroll effect)
  2. 縮放操作的回彈效果

[admin ]

來源:OsChina
連結:https://www.oschina.net/news/114661/ms-edge-scrolling-personality-improvements
微軟如何改進 Microsoft Edge 的滾動效果?已經有364次圍觀

http://coctec.com/news/all/show-post-229298.html