使用jquery获取锚#id urls

时间:2013-03-07 18:13:12

标签: jquery html anchor

我有一个固定的菜单,它使用jquery来平滑滚动到一个锚点,工作正常 - 但是当我使用脚本时,锚点链接不再出现在URL中。任何想法?

该网站为http://www.julianvanmil.com

听到我正在使用的代码;

<script>
jQuery(document).ready(function($) {

    $(".scroll").click(function(event){     
        event.preventDefault();
        $('html,body').animate({scrollTop:$(this.hash).offset().top}, 400);
    });
});
$(function() {
    var bar = $('.logo');
    var top = bar.css('top');
    $(window).scroll(function() {
        if($(this).scrollTop() > 700) {
            bar.stop().animate({'top' : '35px'}, 300);
        } else {
            bar.stop().animate({'top' : top}, 300);
        }
    });
});
</script>

感谢

3 个答案:

答案 0 :(得分:2)

尝试使用JS ...

放入哈希
$(".scroll").click(function(event){     
    event.preventDefault();
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 400);
    window.location.hash = "hash";
});

答案 1 :(得分:1)

event.preventDefault();阻止默认操作,即将哈希附加到URL,然后滚动。

尝试在location.hash = this.hash之后添加event.preventDefault();

答案 2 :(得分:1)

试试这个,它有效:

$('a[href^="#"]').click(function(event){     
    event.preventDefault();
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 800);
    var target_anchor = this.hash;
    setTimeout(function(){
        window.location.hash = target_anchor;
    }, 800);
});