私はちょうどこの問題に遭遇しました、そして、私はページスワップを最適化するために少しのスペースがあると思いました。私の場合は、「飛び降りる」の代わりに滑らかな移行をしたいと思います。私は$のエイリアスとしてjQueryに既に必要でした。
ここではルータのセットアップでスムーズなアニメーションができますので、必要に応じて自由に変更してください。このコードはより洗練されていますが、作業アイデアを示すのに十分なほど細かいはずです。
// Register Router and Paths
const router = new VueRouter({
mode: 'history',
routes : [
{ path: '/aboutme/', component: index, name:'me.index'},
{ path: '/aboutme/cv', component: cv, name:'me.cv' }
],
// Build smooth transition logic with $
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
return $('html,body').stop().animate({scrollTop: $(to.hash).offset().top }, 1000);
} else {
return $('html,body').stop().animate({scrollTop: 0 }, 500);
}
}
})
サイド質問:私たちは何かを返さなければなりませんか?私はjQueryアニメーションがページのスクロールを処理しているため、何の問題もありません。
についてGkiokan
これは履歴モードでのみ機能しますか?私はそれを働かせることができませんが、私は履歴モードではありません – retrograde
はい、[スクロールビヘイビア](https://router.vuejs.org/ja/advanced/scroll-behavior.html)ページは明確に言及していますこの。これは、ルータの状態にハッシュ識別子が関連付けられているためです。ページの位置を特定するための2番目のハッシュ(アンカーへのスクロール)はできません。もう1つのオプションは、ルートに 'query'パラメータを渡して、普通の古いjavascriptを使って目的地ページ内の正しい場所にスクロールすることです。私は実例を示す必要はありませんが、私たちが時間を費やすことでそれができると信じています。 – Mani
ああ、うん、明らかにそれに言及しています。私は大胆なノートのための盲点があることを誓う。ありがとう – retrograde