ホームページ  >  に質問  >  本文

Vue のスクロール アンカーは別のページにありますか?

私のサイトのタイトルにはルーター リンクがあり、クリックするとフォームのある /registration ページに移動します。私が実現したいのは、クリックすると vueScrollTo プラグインを使用して登録フォームにスクロールすることです。

現在は動作していますが、100% 希望どおりに動作するわけではありません。現時点では、/registration ページ以外でクリックすると、フォームまで完全にスクロールしますが、/registration ページ自体にアクセスしてルーターのリンクをクリックすると、警告が表示されます

ページ上にない要素までスクロールしようとしました: 未定義

インストールされたライフサイクル中にイベントをトリガーしているため、これが発生していると思います。それを機能させるためのより良い解決策はありますか?

サイトヘッダーコンポーネント

リーリー

登録ページのコンポーネント

ああああ

P粉627027031P粉627027031241日前359

全員に返信(2)返信します

  • P粉633733146

    P粉6337331462024-02-22 09:26:00

    setTimeout を使用する:

    リーリー

    }

    返事
    0
  • P粉668146636

    P粉6681466362024-02-22 00:07:21

    まず、yarn に vue-scrollto を追加し、次に nuxt.config.js に次の構成

    を追加する必要があります。 リーリー

    したがって、このテンプレートは問題を解決するはずです

    リーリー

    別のページからこれを実行してみましたが、うまくいきました。このページから vue-scrollto を呼び出す必要はありません。単純な <nuxt-link> 移動を使用するだけです。


    このドキュメント ページは、$refs を理解するのに役立ちます: https://v2.vuejs.org/v2/guide/components-edge-cases.html#Accessing-Child-Component-インスタンス-amp-Child-Elements

    返事
    0
  • キャンセル返事