バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、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 ファイアウォール設定の簡単なチュートリアル (初心者)
>>: コード例を通してページ置換アルゴリズムの原理を理解する
説明するこのインターフェースを呼び出すときは、次の点に注意する必要があります。パブリック IP アド...
MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...
時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...
目次1. ルータビュー2. ルータリンク3. リダイレクト4. ルーティングエイリアス5. ルーティ...
フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...
1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...
トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...
目次動作原理:ブラウザは何をするのですか?ホストファイル index.htmlメイン.jsその他のベ...
以下のように表示されます。 1. ssh -v -p [ポート番号] [ユーザー名]@[IPアドレス...
序文Linux のファイルまたはディレクトリの権限については、共通の rwx 権限を知っておく必要が...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
目次1. マスタースレーブレプリケーションマスタースレーブレプリケーション3スレッドマスタースレーブ...
まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...
1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...
序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...