私はVue利用者ですがどうしても素のJavascriptを使わないと行けない処理というものが時々でてきます。
例えば特定の位置へ画面をスクロールさせる処理もその1つ。移動先をIDなどで取得し、スクロールさせる処理を書くことでスクロールできます。
縦に長いページで目次のようなものを使う場合に使われます。ちょいちょい使うのでスクロール処理を関数として切り出して使いまわしています。
しかしこの書き方だと、Modal内でスクロールが発動しないことがわかりました。
Modalは浮かんでいるので、window.で処理をしても動かないようですね。
解決策をいくつか探していたとき、Quasarの公式でスクロールに関するページが有りました。
QuasarにはScrollについても色々便利なユーティリティを提供してくれているおかげで、非常に簡単に書くことができます。まずサンプル。
縦に長いモーダルがあり、上部のナビボタンをクリックすると対象のIDの行へスムースにスクロールします。
以下、コードです。QuasarFramework環境下であればコピペで動きます。
ポイントとなるのは、window.scrollを使わずにQuasarが用意してくれたsetVerticalScrollPositionを使うことです。
これによりWindowではなくモーダルに対してスクロールが走るようになります。
以上、少し躓いたので、備忘録として記事を残しました。