我正在使用w3school https://www.w3schools.com/howto/howto_css_smooth_scroll.asp中的js代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});
</script>
但是令我惊讶的是,我发现平滑滚动可以在10次中进行6次。我清除了浏览器的缓存,但问题仍然存在。
为什么会这样呢?
谁能帮我?
最佳答案
您是否尝试过仅使用CSS
scroll-behavior: smooth;
https://css-tricks.com/snippets/jquery/smooth-scrolling/
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_smooth_scroll
关于javascript - 为什么平滑滚动是可行的,但仅在某些时候可行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59561396/