バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、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 ファイアウォール設定の簡単なチュートリアル (初心者)
>>: コード例を通してページ置換アルゴリズムの原理を理解する
操作効果 html <ヘッド> <メタ文字セット='UTF-8'&...
序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...
1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...
注 1: 上の画像の背景全体がこの Web ページのフルサイズであり、中央の小さなボックスがブラウザ...
docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...
1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...
最近、クライアントのために印刷していたとき、ページのヘッダーを印刷するのではなく、表の内容だけを印刷...
目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...
ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...
1. はじめにNginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プロキ...
border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...
1. PPTP VPNを構築するには、ポート1723とGREプロトコルを開く必要があります。 1. ...
システムの起動時に読み込む必要がある設定ファイル/etc/profile、/root/.bash_p...
1. CentOS8でのDockerのインストール カール https://download.doc...
ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...