2

我有一个使用 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>

谢谢

4

3 回答 3

2

尝试将哈希与 JS...

$(".scroll").click(function(event){     
    event.preventDefault();
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 400);
    window.location.hash = "hash";
});
于 2013-03-07T18:18:12.293 回答
1

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

尝试添加:location.hash = this.hashevent.preventDefault();.

于 2013-03-07T18:19:31.323 回答
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);
});
于 2013-06-25T19:09:09.323 回答