3 回答

TA貢獻1853條經驗 獲得超9個贊
請檢查mousemove活動是否適合您。
let interval = null;
btn.addEventListener("mousemove", function(){
console.log("Hello");
});
btn.addEventListener('mouseenter', function(){
interval= setInterval(()=>console.log('Hello'), 100)
})
btn.addEventListener('mouseout', function(){
clearInterval(interval)
})
#btn{
width: 300px;
height: 60px;
border-radius: 8px;
}
<button id="btn">
hover me
</button>

TA貢獻1873條經驗 獲得超9個贊
您可以通過使用mouseoverand mouseout(和 a setInterval)來做到這一點?;旧?,鼠標進入時開始一個間隔,退出時清除它。
let interval;
btn.addEventListener("mouseover", function(){
interval = setInterval(function() {
console.log("Hello");
}, 100);
});
btn.addEventListener("mouseout", function(){
clearInterval(interval);
});

TA貢獻1906條經驗 獲得超10個贊
您可以使用以下組合
標志,可以在元素本身上,也可以作為單獨的變量
一個 setInterval 函數
找出在任何給定時間懸停的元素。(這顯然是一個有點愚蠢的例子,因為你不能很好地將鼠標懸停在一次相鄰的多個元素上。)
function addEventListeners(button) {
button.addEventListener("mouseover", () => button.dataset.hovered = "1");
button.addEventListener("mouseout", () => button.dataset.hovered = "0");
}
function reportHovers(elements) {
const hoveredIds = elements.filter(el => el.dataset.hovered === "1").map(el => el.id);
document.getElementById("out").value = `${Math.floor(new Date() / 1000)}\n${JSON.stringify(hoveredIds)}`;
}
var buttons = Array.from(document.querySelectorAll("button"));
buttons.forEach(button => addEventListeners(button));
setInterval(() => reportHovers(buttons), 100);
<button id="b1">Button 1</button>
<button id="b2">Button 2</button>
<button id="b3">Button 3</button>
<textarea id="out"></textarea>
添加回答
舉報