バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、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 ファイアウォール設定の簡単なチュートリアル (初心者)
>>: コード例を通してページ置換アルゴリズムの原理を理解する
目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....
目次1 Dockerをインストールする2 国内ミラーソースの設定3 中国語環境基本版Centos7イ...
最近、ネイティブ JS を使用して、さらにいくつかの小さな機能を実装したいと思っています。現在、ブロ...
グリッドレイアウト親要素に追加された属性グリッドテンプレートの列/グリッドテンプレートの行要素の行ま...
1998 年の CSS2 勧告の時点で、テーブルは徐々に舞台から消え、歴史の中に記録されるようになり...
Python プログラムを書き、Mysql ライブラリを集中的に操作したためです。データ量が多くない...
データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...
クラスターを構成する際に問題が発生しました。当初は 3 台の仮想マシンすべてが外部ネットワークに p...
1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...
1 hupからイメージを取得する docker プル nginx 2 マウントするディレクトリを作成...
Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...
序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...
序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...
目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...