![](/img/trans.png)
[英]jquery animate scrollTop function is not working in internet explore
[英]jquery .animate scrollTop function not working
我正在尝试在投资组合网站上使用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的部分,而不是跳转。
您可以尝试关注。
$('a[href*="#"]:not([href="#"])').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
if (target.length) {
$('html, body').animate({scrollTop: $(target).offset().top}, 1000);
}
});
使用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>
标记的默认操作,因此浏览器没有时间为滚动动画,因为您已经在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.