我有一个固定的菜单,它使用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>
感谢
答案 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);
});