我有一个页面设计,使用此代码通过jquery轻松滚动:
function ScrollMe(id){
var offset = $("#"+id).offset().top-50;
$('html,body').animate({scrollTop: offset},'slow');
};
这个html:
<a onclick="ScrollMe('about')" href="javascript:void(0)">About</a>
工作正常,但我需要的是将href更改为“#about”,以便在点击链接时更新网址。在这种情况下,我只是不知道如何保持宽松。
由于
EDIT 所以对我来说这个作品足够好:
<a href="#contact" onclick="return scrollMe('contact');">
答案 0 :(得分:1)
快速而肮脏的方法是添加return:false;你的onclick:
<a onclick="ScrollMe('about');return false;" href="#about">About</a>
然而,更好的方法是改变它如下:
<a class="about" href="#about">About</a>
并将其添加到您的javascript:
jQuery(function($) {
$(".about").click(
function() {
scrollMe('about');
return false;
}
);
});
答案 1 :(得分:0)
<a href="#about" onClick="ScrollMe('about'); return false;">About</a>
那就可以了。
答案 2 :(得分:0)
为什么不简单地设置锚id
正确设置href
?像这样,例如:
<a href="#about" onclick="scrollMe('about'); return false;">About</a>
这可以正确设置浏览器的位置,因此可以复制和传输它。但是如果你想在从另一个页面打开你的页面时播放动画,而不是这个,你应该在页面加载后调用像scrollMe(location.hash)
这样的smth。
注意:location.hash
可能会注意到某些浏览器的工作情况。