バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、keepAlive と組み合わせて使用する必要があります。参考までにこの記事を共有します。 1. 場所を保存する前提は、キャッシュ用のkeepAliveコンポーネントを使用することです。app.vueコード <テンプレート> <div id="アプリ"> <キープアライブ> <ルータービュー v-if='$route.meta.keepAlive'/> </キープアライブ> <ルータービュー v-if='!$route.meta.keepAlive'/> </div> </テンプレート> 2. ルーティングファイルrouter.jsで、各ルーティングメタにscrollTopとkeepAliveを追加します。 { パス: '/home', 名前: 'ホーム', コンポーネント: 解決 => require(['@/views/home/index.vue'], 解決), メタ: { タイトル: 'ホームページ'、 インデックス: 1, キープアライブ: 真、 スクロールトップ: 0 } }, { パス: '/classify', 名前: '分類'、 コンポーネント: 解決 => require(['@/views/classify/index.vue'], 解決), メタ: { タイトル:「分類」 インデックス: 1, キープアライブ: 真、 スクロールトップ: 0 } }, { パス: '/shopping', 名前: 「ショッピング」 コンポーネント: 解決 => require(['@/views/shopping/index.vue'], 解決), メタ: { タイトル: 「ショッピングカート」 インデックス: 1, キープアライブ: 真、 スクロールトップ: 0 } }, { パス: '/detail', 名前: '詳細', コンポーネント: 解決 => require(['@/views/detail/index.vue'], 解決), メタ: { タイトル: 「詳細」 インデックス: 2, // キープアライブ: true, // スクロールトップ: 0 } }, 3. 次にmain.jsでスクロールバーの位置を記録します。 router.beforeEach((to, from, next) => { if (from.meta.keepAlive) { const $wrapper = document.querySelector('.app-wrapper'); // リストの外側のコンテナーは、スクロール ボックスの検索に注意する必要があります const scrollTop = $wrapper ? $wrapper.scrollTop : 0; console.log('scrollTop=', スクロールトップ) スクロールトップをスクロールします。 } 次(); }); 4. 最後に、scrollTopをアクティブ化して取得します(この関数はページに入るたびに実行され、keepAliveコンポーネントと組み合わせて使用した場合にのみ有効です)。ここで、スクロールバーの位置を記録する必要があります。 アクティブ化(){ 定数 scrollTop = this.$route.meta.scrollTop; 定数 $wrapper = document.querySelector('.app-wrapper'); スクロールトップと$ラッパーの場合{ $wrapper.scrollTop = スクロールトップ; } }, たとえば、一部のページをキャッシュし、そのページをスクロールしたくない場合は、scrollTop を 0 に設定できます。 アクティブ化() { const $wrapper = document.querySelector(".app-wrapper"); $wrapper.scrollTop = 0; }, ページがスクロールすると、スクロールバーのある他のページも一緒にスクロールすることに注意してください。他のページで処理するか、詳細ページから一覧ページまでの位置をキャッシュするかどうかを決定します。そうでない場合は先頭に戻りますが、ルーティングフック関数の使用に注意してください。 以下もご興味があるかもしれません:
|
<<: Ubuntu 20.04 ファイアウォール設定の簡単なチュートリアル (初心者)
>>: コード例を通してページ置換アルゴリズムの原理を理解する
この記事の例では、JavaScriptで4桁のランダムな検証コードを生成する具体的なコードを参考まで...
前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...
1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....
写真を背景にしてリンクを記載します。たとえば、ウェブサイトのロゴ画像などです。例: ポテトのロゴ画像...
プロジェクトを作成しているときに、ユーザーがアクションを実行し、特定の状態を変更し、ページを更新して...
1. Dockerに適したRedisのバージョンを見つけるdocker hubで見つけることができ...
目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...
この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...
目次1. この Web サイトには SQL インジェクションの脆弱性がある可能性があることが判明しま...
docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...
序文古いプロジェクトを引き継ぐ苦労 - MongoDB クラスターの学習と構築に関する前回の記事を読...
docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...
目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...
間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...
ある日、リーダーはメイン ページに iframe を埋め込み、親ページと子ページ間で双方向にメッセー...