问题是它一直无休止地滚动,我试图使用退出来终止它,但它不起作用,任何解决方案?
学到更多
<script>
var marginY = 0;
var destination= 0;
var speed = 10;
var scroller = null;
function initScroll(elementId)
{
destination= document.getElementById(elementId).offsettop;
scroller = setTimeout(function(){initScroll(elementId);},1);
marginY = marginY + speed;
if(marginY >= destination)
{
clearTimeout(scroller);
}
window.scroll(0,marginY);
}
</script>
答案 0 :(得分:3)
JavaScript CaSe SeNsItIvE !它是offsetTop
而不是offsettop
:
destination = document.getElementById(elementId).offsetTop;
另一方面,我不确定这是如何运作的。如果您正在尝试平滑滚动,您还可以使用jQuery:
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash;
var $target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
});
});