2 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
一種解決方案是使用setInterval()應(yīng)該在 上取消的方法mouseout。您可以存儲間隔 id 并clearInterval()使用mouseout:
const delay = 100;
let intervalId;
function goLeft() {
intervalId = setInterval(
() => (document.getElementById('images').scrollLeft -= 20),
delay,
);
}
function goRight() {
intervalId = setInterval(
() => (document.getElementById('images').scrollLeft += 20),
delay,
);
}
function stopScrolling() {
clearInterval(intervalId);
}
left.addEventListener('mouseover', goLeft);
left.addEventListener('mouseout', stopScrolling);
right.addEventListener('mouseover', goRight);
right.addEventListener('mouseout', stopScrolling);

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以創(chuàng)建一個(gè)布爾值,當(dāng)用戶將鼠標(biāo)懸停在元素上時(shí),該布爾值將為“true”。
// for the right side:
let mouseOverRight = false;
right.addEventListener("mouseenter", function(){
mouseOverRight = true;
});
right.addEventListener("mouseleave", function(){
mouseOverRight = false;
});
然后使用間隔,將延遲更改為您想要的任何速度
window.setInterval(function(){
if (mouseOverRight)
/// Scroll logic here
}, 300);
當(dāng)然,你也必須對左側(cè)做同樣的事情。
添加回答
舉報(bào)