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 に答える