Co musisz zrobić, to przechowywać hashtag do późniejszego wykorzystania, a następnie usunąć, aby przeglądarka nie miała niczego do przewijania.
Ważne jest, aby nie umieszczać tej części kodu w funkcjach $() lub $ (window) .load(), ponieważ byłoby za późno, a przeglądarka już przeniosła się do znacznika.
// store the hash (DON'T put this code inside the $() function, it has to be executed
// right away before the browser can start scrolling!
var target = window.location.hash,
target = target.replace('#', '');
// delete hash so the page won't scroll to it
window.location.hash = "";
// now whenever you are ready do whatever you want
// (in this case I use jQuery to scroll to the tag after the page has loaded)
$(window).load(function() {
if (target) {
$('html, body').animate({
scrollTop: $("#" + target).offset().top
}, 700, 'swing', function() {});
}
});
Dzięki, ale problem nie występuje, gdy klikam w cokolwiek, a raczej kiedy "odwiedzam" stronę. – drake035
@ drake035 Edytowałem odpowiedź. Nie wiem, czy jest to najbardziej efektywny lub najlepszy sposób, ale wydaje się, że działa. – Dim13i
Thx, ale to nie działa. – drake035