是的我正在避免使用第三方lib,在移动设备上的非常小的应用程序,并且不想拉任何东西。滚动到纯javascript无法正常工作
我试图滚动到使用此scrollTo功能网页上的元素:
function scrollTo(element, to, duration) {
if (duration <= 0) return;
var difference = to - element.scrollTop;
var perTick = difference/duration * 10;
setTimeout(function() {
element.scrollTop = element.scrollTop + perTick;
if (element.scrollTop === to) return;
scrollTo(element, to, duration - 10);
}, 10);
}
我抢,我想为我的滚动点每次使用span标签的列表,用户点击下一步按钮:
var index = null;
function next() {
var list = document.querySelectorAll("span");
var element = null;
if (index == null) {
index = -1;
element = document.body;
} else {
element = list[index];
}
index++;
if (index >= list.length) {
return;
}
var to = list[index];
scrollTo(element, to.offsetTop, 250);
}
正确的第一个点击滚动到第一个元素。然而,下一次点击不会滚动。我调试到scrollTo方法,似乎element.scrollTop变量每次分配时都不会改变。有任何想法吗?
你确认你的var列表中有多个项目吗? – user1289451
是的,列表有4个项目。 – lostintranslation