我有一些jquery用于平滑滚动:
$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 1400);
});
哪个工作正常,但我在页面上有一些使用哈希链接的选项卡。单击每个选项卡时,页面将滚动到屏幕顶部。
有没有办法让这个平滑的滚动工作,只有当一个特定的锚被添加到哈希(比如/#features)而不工作时它只是一个哈希(比如/#)
答案 0 :(得分:0)
您可以添加:not()
selector以消除href="#"
触发click
事件。
$(document).on('click', 'a[href^="#"]:not([href=#])', function(event) {
console.log("Clicked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#">Hash Only</a>
<a href="#Anchor1">Anchor 1</a>
<a href="#Anchor2">Anchor 2</a>