也许这是一个愚蠢的问题,但我想知道为什么这不起作用。
我尝试使用动画滚动到此元素。 通常元素是:
scrollTo(document.body, 0, 100);
我更改了名为'here'的变量中的元素。 如果我在逻辑上思考,代码必须滚动到元素'here',到0px,持续时间,但我不工作。有谁能告诉我什么出错了?
我的代码:
document.getElementById('scroll-to-elm').onclick = function () {
var here = document.getElementById('tohere');
scrollTo(here, 0, 100);
}
function scrollTo(element, to, duration) {
if (duration < 0) return;
var difference = to - element.scrollTop;
var perTick = difference / duration * 2;
setTimeout(function() {
element.scrollTop = element.scrollTop + perTick;
scrollTo(element, to, duration - 2);
}, 10);
}