滚动到内部和外部链接上的锚点

时间:2013-06-21 12:17:02

标签: jquery

所以我发现自己陷入了困境。我正在使用附加的代码在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));
}

});

现在,如果你像我一样偏移空间来说一个粘性导航,那么窗口将加载到锚点,然后向上动画到所需的偏移量。这不是我想要的理想选择,但这是我能得到的最接近的。

0 个答案:

没有答案