我有一个功能,可以通过选择所有包含#的href来平滑滚动页面。单击后,页面向下滚动到链接的部分,减去我标题的高度的上下偏移(因为它的位置为:fixed;)。 现在我的问题是,当我链接到另一页上的某个部分时,此偏移量将被忽略。
我猜问题出在我的click(function()
参数上。
$(document).ready(function() {
$('a[href*="#"]:not([href="#"])').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) {
$('html, body').animate({
scrollTop: target.offset().top - $('#main_menu').height()
}, 1000);
return false;
}
}
});
});
如何做到这一点,以使我的标题的topOffset在我单击指向另一个页面上某个部分的链接时不会被忽略(例如,当我进入contact.html
并进入到index.html#sectionA
)?