2013-03-07 78 views
2

我有一個固定的菜單,使用jQuery來平滑滾動到一個錨點,工作正常 - 但是當我使用腳本錨點鏈接不再出現在URL中。有任何想法嗎?獲取錨#id url回到jquery

該網站是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> 

感謝

+0

我們需要更多的信息,而不僅僅是一個鏈接到您的網頁。請看這個:http://meta.stackexchange.com/q/125997 – 2013-03-07 18:15:06

回答

1

event.preventDefault();阻止默認操作,這是哈希附加到URL,然後滾動。

嘗試添加:location.hash = this.hash之後event.preventDefault();

+0

這樣做了,謝謝! – julesvm 2013-03-07 18:23:46

+0

不客氣:) – 2013-03-07 18:24:46

2

嘗試把哈希與JS ...

$(".scroll").click(function(event){  
    event.preventDefault(); 
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 400); 
    window.location.hash = "hash"; 
}); 
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); 
});