「Yet Another Smooth Scrolling WE」を試す

次は、kataho氏のYet Another Smooth Scrolling WEである。AMOは、図6の通りである。

  • 図6 Yet Another Smooth Scrolling WE

開発のきっかけは、Windowsでのスクロールがどうにも気に入らない、出発点であったとのことである。マウスホイールを高速に回転させて場合は、より俊敏に加速する。カーソルキーでの移動で、キーを押しっぱなしにした場合、スクロール幅の倍率などを細かく調整できる。実際に、Yet Another Smooth Scrolling WEをインストールして、設定画面を開くと、図7のようになる。

  • 図7 Yet Another Smooth Scrolling WEの設定画面(ホイール)

  • 図8 Yet Another Smooth Scrolling WEの設定画面(キーボード)

各項目にマウスオーバーすると、その項目の解説が表示されるので、参考にするとよい。この手の機能拡張は、使い込んで、自分好みの設定を見つけ出すしかない。筆者の感想であるが、もっともベースの設定となる[移動単位]を変更しただけで、スクロールの挙動が異なる点におもしろさを感じた。プリセットを3つ登録できるので、サイトによって使い分けるといったことも可能だ。ショッピングサイトではスクロール単位を大きめに、ブログのようなサイトではスクロール単位は小さめにといったことができる。

  • 図9 プリセットの設定

XULの頃から、10年以上続くアドオンである。今回、移植にあたって、苦労されたのは、ホイールイベントを自前で探す点であった。

  • 図10 Elementを特定

しかし、WebExtensionsでは、iframeごとに拡張機能のインスタンスが起動されてしまう。つまり、親となるイベントを辿ることができないので、iframeを総当たりする手法を見つけたとのことだ。

  • 図11 iframeを総当たりする

自身では、elementFromPointを使う手法をいくつか考案した。

  • 図12 elementFromPointを使う手法1

iframe総当たりとのパフォーマンスの比較であるが、kataho氏によると、図13のようになった。

  • 図13 パフォーマンス比較

このあたりの分析もユニークであった。