我在这段代码中发现了一个非常奇怪的模式,我购买了此模板以快速启动并运行一个网站,现在我遇到了调试滴答声的问题。因此,这是转到每个页面部分的平滑滚动效果,并且直到我再次单击它并将其固定到位之前,它都不想转到应该的位置。
/*Smooth Scroll*/
$(document).ready(function(){
// Add smooth scrolling to all links
var nav = document.getElementById("navver");
var navHeight = nav.clientHeight;
$("a.nav").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 are
$('html, body').animate({
scrollTop: $(hash).offset().top - navHeight
}, 1200, "swing", function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});
如您所见,我已经更改了动画持续时间以进行检查,因为这对我来说很奇怪,我还添加了swing
放松自己。但是就像我说的那样,效果将超过scrollTop整数,然后单击第二次,它将达到我的数学需要的位置。我已经console.log
进行了所有操作,并且无论如何数字都显示相同,因此我看不到在函数运行之前或之后没有解析任何内容。
任何新鲜的眼睛有什么想法吗?