所以我发现自己陷入了困境。我正在使用附加的代码在jQuery中简单地滚动到锚点。当我在页面上并且它在本地滚动到锚点时滚动工作,但是当我需要回到滚动以锚定在另一页面上时,我的问题就出现了。
var scrollWin = function (selector) {
var bar = jQuery(selector).offset().top;
bar = bar - 80;
jQuery('html, body').animate({
scrollTop: bar
}, 1000);
}
jQuery('[href^=#]').click(function(e) {
scrollWin (jQuery(this).attr('href'));
return false;
});
当内部页面上的链接从“#div”更改为“/#div”时,我发现了一个可以从外部页面运行的代码,但是不能更改内部页面上的导航链接。任何和所有的帮助非常感谢,欢呼。
更新
所以这就是我最终的目标
jQuery(document).ready(function(){
jQuery('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
|| location.hostname == this.hostname) {
var target = jQuery(this.hash);
target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +']');
if (target.length) {
jQuery('html,body').animate({
scrollTop: target.offset().top - 80
}, 1000);
return false;
}
}
});
});
然后外部页面返回带有锚链接的页面
jQuery(window).load(function(){
function goToByScroll(id){
jQuery('html,body').animate({scrollTop: jQuery("#"+id).offset().top - 80},'slow');
}
if(window.location.hash != '') {
goToByScroll(window.location.hash.substr(1));
}
});
现在,如果你像我一样偏移空间来说一个粘性导航,那么窗口将加载到锚点,然后向上动画到所需的偏移量。这不是我想要的理想选择,但这是我能得到的最接近的。