「Yet Another Smooth Scrolling WE」を試す
次は、kataho氏のYet Another Smooth Scrolling WEである。AMOは、図6の通りである。
開発のきっかけは、Windowsでのスクロールがどうにも気に入らない、出発点であったとのことである。マウスホイールを高速に回転させて場合は、より俊敏に加速する。カーソルキーでの移動で、キーを押しっぱなしにした場合、スクロール幅の倍率などを細かく調整できる。実際に、Yet Another Smooth Scrolling WEをインストールして、設定画面を開くと、図7のようになる。
各項目にマウスオーバーすると、その項目の解説が表示されるので、参考にするとよい。この手の機能拡張は、使い込んで、自分好みの設定を見つけ出すしかない。筆者の感想であるが、もっともベースの設定となる[移動単位]を変更しただけで、スクロールの挙動が異なる点におもしろさを感じた。プリセットを3つ登録できるので、サイトによって使い分けるといったことも可能だ。ショッピングサイトではスクロール単位を大きめに、ブログのようなサイトではスクロール単位は小さめにといったことができる。
XULの頃から、10年以上続くアドオンである。今回、移植にあたって、苦労されたのは、ホイールイベントを自前で探す点であった。
しかし、WebExtensionsでは、iframeごとに拡張機能のインスタンスが起動されてしまう。つまり、親となるイベントを辿ることができないので、iframeを総当たりする手法を見つけたとのことだ。
自身では、elementFromPointを使う手法をいくつか考案した。
iframe総当たりとのパフォーマンスの比較であるが、kataho氏によると、図13のようになった。
このあたりの分析もユニークであった。