• HOME
  • [nuxt3]Transition遷移時、ASScrollのスクロール値を0にする
TomoyaOkada

[nuxt3]Transition遷移時、ASScrollのスクロール値を0にする

記事をシェアする

※備忘録です

今回の問題

Nuxt3でGSAPを使ったTransition実装しました。
以下のサイトを参考に、watchでTransitionを監視して完了した後にwatch内を動作させる処理までは問題なくいけました。
https://stackblitz.com/edit/nuxt-starter-bthjlg?file=pages%2Findex.vue

しかし、ASScrollのスクロールしたtransform値が遷移後に0となってしまう現象に遭遇。
これが起きると遷移した後にページ先頭に戻るため、見栄えがよくないしカクッとしてしまう。


解決したいこと

ページ遷移が始まると同時にtransform値を0にしたい(実質ページ先頭に戻す形にしたい)


解決した方法

ASScrollの再設定タイミングを以下に設置すると理想の挙動になった。

watch(
  () => transitionState.transitionComplete,
  (newValue) => {
    $asscroll.enable({ reset: true });
    if (newValue) {
      ctx.value = $gsap.context((self) => {
         //各種処理
      }, main.value); // <- Scop
    }
  }
);


■注意点
このwatchをonMountedで囲むと思い通りの挙動にならない。


記事をシェアする