Hello J想要在点击p标签时滚动。但我读到并不是每个浏览器都支持末尾带有"smooth"的版本。所以我试着用一个暂停和for循环来完成它。我还将其与鼠标位置进行了比较。当我在console.log中执行此操作时,它是有效的。但当我使用return时,不会。
let angebot = document.getElementById("bieten");
let beispiel = document.getElementById("beispiel");
document.body.addEventListener("mousemove", move);
angebot.addEventListener("click", angebotscroll);
function move(event) {
let position = event.clientY;
return position;
}
document.body.addEventListener("mousemove", move);
angebot.addEventListener("click", angebotscroll);
setTimeout(function() {
for (let i = 0; move() < beispiel.offsetTop; i++) {
window.scrollBy(0, i);
}
}, 10);
未捕获的TypeError:无法读取未定义的属性"clientY"移动时(navigation.js:35(在navigation.js:44
您在setTimeout中调用函数move
,而不传递event
参数。当然,它是未定义的。
您应该将变量position
设置在全局作用域中。在函数move
中更新它(仅从侦听器调用(,在setTimeout
中获取变量position
,而不是调用函数move