バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、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 ファイアウォール設定の簡単なチュートリアル (初心者)
>>: コード例を通してページ置換アルゴリズムの原理を理解する
以前、プロジェクトを開発しました。バックエンドのインターフェースを書くために Flask フレームワ...
[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...
1. ダウンロードアドレス:参考: http://dev.mysql.com/downloads/m...
1. JSON.stringify() と JSON.parse() の違い私たちは皆、JSON.s...
場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...
文章1) Ubuntuイメージをダウンロードする docker プル Ubuntu 2) 画像を見る...
1. Dockerがイメージをプルするdocker pull mysql (デフォルトで最新バージョ...
実装方法は3つのステップに分かれています。テンプレートに 2 つのボタンを設定し、v-if と v-...
1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...
コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...
フレーム構造タグ <frameset></frameset>フレームを使用す...
概要私たちは、双十一に天猫で化粧品を購入する人の平均支出額を知りたい(商品の価格帯を見つけるのに役立...
この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳...
この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...
背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...