Google Chrome 停用平滑捲動

因為把 JavaScript 開回來了,所以有這個困擾... :(

Google Chrome 的平滑捲動可以透過 chrome://flags 裡面的設定關閉 (OS X 上則是透過系統設定關閉),但就是有不少網站會很雞婆,用 JavaScript 模擬平滑捲動,所以就花了時間把 extension 寫出來:「Stop Smooth Scrolling」。

由於大多數平滑捲動的作法都是透過對 document 或是 window 上掛上與平滑捲動相關事件做到的,所以我是透過 addEventListener()useCapture flags,然後再用 preventDefault() 擋下後續的處理。

這樣做會有一些問題,其中比較明顯的是地圖類功能的滾輪會失效,這個部分我先放進預設的白名單了,如果有其他的問題,除了可以自己加以外,也可以開 ticket 讓我加進預設清單 :o

實際運作起來大概是這樣:

Anyway,寫這個還蠻有趣的,玩了不少新東西:

關閉 Google Chrome 49 的平滑捲動

在這次 Google Chrome 的「Stable Channel Update」裡引入了平滑捲動,在 comment 的地方有人提出解法,可以在 chrome://flags 裡找 disable-smooth-scrolling 關掉後重開 Google Chrome:

You can disable it here: chrome://flags/#disable-smooth-scrolling

另外一個 bug 是跑出一堆 extension icon 要重新蔵:

Hiding extensions needs to be made available again.

另外這次的安全更新有很多是透過「AddressSanitizer, ThreadSanitizer, MemorySanitizer」與「Control Flow Integrity」這兩個專案所找出來的。

關閉 OS X Yosemite (10.10) 的平滑捲動

2011 年的時候寫了一篇「關掉 Mac OS X 上的平滑捲動...」,而昨天發現用了四年的 MBA 壞了,今天買了新的 MBPR 後發現原來的方法已經找不到對應的地方設定了...

查到「Disable Smooth Scrolling in Mountain Lion」這篇的說明,用這個指令就可以關閉:

defaults write -g NSScrollAnimationEnabled -bool false

恢復的方法把 false 改成 true 即可。

關掉 Mac OS X 上的平滑捲動...

起因是想要關掉 Google ChromeMac OS X 上的平滑捲動,找了半天都沒看到,後來被人提醒,Mac 系統有選項提供平滑捲動,Google Chrome 有平滑捲動可能是由作業系統提供,而非 Google Chrome 自己實作:

關掉後問題就解決了...