gpt4 book ai didi

javascript - jquery.animatescrollTop 函数不起作用

转载 作者:行者123 更新时间:2023-12-02 23:52:55 24 4
gpt4 key购买 nike

我正在尝试在投资组合网站上使用 jQuery 学习动画滚动。我认为这在理论上应该可行,但我的按钮仍然只是“跳转”到其 href 而不是滚动。

JavaScript 包含在 $(document).ready(function() {}) 内容中:

$('a[href*="#"]:not([href="#"])').click(function() {
var target = $(this.hash);
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top
}, 1000);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#about">About Me</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#skills">Skills</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#projects">My Projects</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#contact">Contact Me</a>
</li>
</ul>
</div>

我希望这会滚动到带有这些 id 的部分,而不是跳转。

最佳答案

首先使用preventDefault()停止默认的ahref操作,应该没问题

// added e parameter to click callback
$('a[href*="#"]:not([href="#"])').click(function(e) {
// use prevent default function
e.preventDefault()
var target = $(this.hash);
if (target.length) {
$('html, body').animate({scrollTop: target.offset().top}, 1000);
}
});`

您正在激活 <a> 的默认操作标签,这样浏览器就没有时间动画滚动,因为你已经在那里了。

关于javascript - jquery.animatescrollTop 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com