他のページに移動するときに ScrollPosition が先頭に設定されない
P粉556159786
P粉556159786 2023-08-30 09:07:14
0
1
505
<p>Web ページはマスター/スレーブ アプローチを使用して設計されています。マスターにはタブ (左ペイン) があり、クリックするとスレーブ (右ペイン) の対応するページが表示されます。例えば。 master には「スキーマとテンプレート」という 2 つのタブが 3 つあり、デフォルトでスキーマが表示されます。ユーザーは、左側のペイン (マスター ページによってロードされる) のタブを使用して、これら 2 つのページ (スレーブ ページによってロードされる) 間を移動できます。 </p> <p>ユーザーがスキーマ ページ内の任意の位置までスクロールしてテンプレート ページに移動すると、スクロール位置は先頭に設定されません。ただし、スクロール動作はルーターファイルで設定されます。 </p> <pre class="brush:php;toolbar:false;">const createRouter = () => new VueRouter({ スクロール動作: () => ({ x: 0, y: 0 })、 ルート:[ //すべてのルートを持っています 】 });</pre> <p>scrollBehavior の近くにブレークポイントを設定して観察すると、ナビゲーションがあるたびに行がヒットしますが、アーキテクチャからテンプレート ページに移動するときにスクロール位置が先頭に設定されません。 </p> <p>ただし、テンプレート ページ内の特定の場所までスクロールしてアーキテクチャ ページに移動すると、そのページが先頭に設定されます。 </p> <p>templates.ts の Mounted() 内に window.scrollTo(0, 0); 関数を書いてみました。クリックしてもトップには表示されません。 </p> <p>なぜこれが起こっているのか説明できる人はいますか? stackoverflow にリストされているほぼすべての可能な解決策を試しました。 </p>
P粉556159786
P粉556159786

全員に返信(1)
P粉248602298

私も vue でこの問題に遭遇しました。一番上までスクロールしたい場合は、このトリックを使用する必要があります。 window.scrollTo(0, 0); の代わりに setTimeout で使用すると、タイムアウトが非常に小さくなります。
settimeout(()=>{ window.scrollTo(0, 0); }, 10)
お役に立てれば。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!