3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
您應(yīng)該調(diào)用setTimeout內(nèi)部事件處理程序,如下所示:
document.getElementById("test1").addEventListener("mouseout", mouseOut);
function mouseOut() {
setTimeout(mouseOut2, 10000);
}
function mouseOut2() {
document.getElementById("test2").style.opacity = "1";
document.getElementById("test2").style.visibility = "visible";
}

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
SetTimeout 應(yīng)該在 mouseOut 里面
document.getElementById("test1").addEventListener("mouseover", mouseOver);
document.getElementById("test1").addEventListener("mouseout", mouseOut);
function mouseOver() {
document.getElementById("test2").style.opacity = "0";
document.getElementById("test2").style.visibility = "hidden";
}
function mouseOut() {
setTimeout(()=>{
document.getElementById("test2").style.opacity = "1";
document.getElementById("test2").style.visibility = "visible";
}, 6000);
}
<body>
<img src="images/1.jpg" alt="some_text" id="test1" style="height: 450px; width: 300px;">
<img src="images/1.jpg" id="test2" alt="some_text" style="height: 450px; width: 300px;">
</body>

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
由于您綁定mouseOut為相應(yīng)事件的事件處理程序,它仍將被執(zhí)行。您setTimeout添加的只會再調(diào)用mouseOut一次,與鼠標(biāo)事件無關(guān)。
如果您想延遲處理鼠標(biāo)移開事件時(shí)發(fā)生的事情,請執(zhí)行以下操作:
function mouseOut() {
setTimeout(function () {
document.getElementById("test2").style.opacity = "1";
document.getElementById("test2").style.visibility = "visible";
}, 10000);
}
但是請注意,這可能不是那么用戶友好。用戶可能希望該行為與他們的鼠標(biāo)移動(dòng)有關(guān),但現(xiàn)在連接丟失了——肯定有 10 秒的超時(shí)。
添加回答
舉報(bào)