我使用下面的代码在锚链接上进行平滑滚动
jQuery(function() {
jQuery('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = jQuery(this.hash);
target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +']');
if (target.length) {
jQuery('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
然而,这与我用来显示信息的一些隐藏div有冲突。这是一个例子。
<div style="display:none;">
<div id="contact-email" >
[gravityform id=15 ajax=true title=false description=false tabindex=20]
</div>
</div>
如果我使用上面的代码,则根本不会显示隐藏的div。
是否可以排除与我隐藏的div对应的锚链接 - 我只有一对..
答案 0 :(得分:4)
好的解决方案是使用:
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
然后使用
<a href="#comments" class="scroll">Scroll to comments</a>
我希望平滑滚动的锚链接。
我只是想知道这段代码的效率和浏览器兼容性。