#portfolio
現在、WordPress ページで「スムーズ スクロール」を使用しており、外部リンクから (アンカー ( ) を使用して) そこからページを開始するときに、要求されたセクションにページをスムーズにスクロールさせようとしています。上部に移動し、ポートフォリオ セクションまでスクロールします。
何が起こっているかというと、「ポートフォリオ セクション」(アンカー ジャンプ) が短時間表示され、その後、一番上にリセットされて下にスクロールします。
コード
$(function() {
$('.menu li a').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$root.animate({
scrollTop: target.offset().top - 75
}, 800, 'swing');
return false;
}
}
});
});
ページの読み込み
$(window).on("load", function() {
if (location.hash) { // do the test straight away
window.scrollTo(0, 0); // execute it straight away
setTimeout(function() {
window.scrollTo(0, 0); // run it a bit later also for browser compatibility
}, 1);
}
var urlHash = window.location.href.split("#")[1];
if (urlHash && $('#' + urlHash).length)
$('html,body').animate({
scrollTop: $('#' + urlHash).offset().top - 75
}, 800, 'swing');
});
ページの読み込み時に発生するように見える「ジャンプ」を防ぐにはどうすればよいですか?
HTML - ナビゲーション リンク (ダミー リンクを使用)
<a href="link.com/#portfolio>portfolio</a>
HTML - div
<div id="portfolio></div>