Việc bạn phải làm là lưu thẻ bắt đầu bằng # để sử dụng sau này và sau đó xóa thẻ để trình duyệt không có gì để cuộn đến.
Điều quan trọng là bạn không đặt phần mã đó trong hàm $() hoặc $ (cửa sổ) .load() vì nó sẽ đến muộn và trình duyệt đã chuyển đến thẻ.
// 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() {});
}
});
Cảm ơn nhưng vấn đề không phải là khi tôi nhấp vào bất kỳ thứ gì, thay vì khi tôi "truy cập" trang. – drake035
@ drake035 Tôi đã chỉnh sửa câu trả lời. Không biết nếu nó là hiệu quả nhất, hoặc cách tốt nhất, nhưng nó có vẻ làm việc. – Dim13i
Thx nhưng nó không hoạt động. – drake035