JQuery 默认案例延迟淡出,当 mouseenter 保持可见时,在 mouseout 之后淡出

JQuery Default case delay fadeout, when mouseenter stay visible, after mouseout fadeout

我正在尝试做到这一点,如果什么都不做,盒子会在 3 秒后自动淡出,但如果用户将鼠标放在盒子里,它会 stop/prevent 淡出并继续显示,然后一旦用户的鼠标离开它就会淡出。

我试过 HTML:

<div id="box">box</div>

和JQuery:

$("#box").delay(3000).fadeOut("slow");

$("#box").mouseenter(function(){
    $("#box").stop().fadeIn("fast");
});
$("#box").mouseout(function(){
    $("#box").delay(1000).fadeOut("fast");
});

发生的情况是,如果鼠标悬停在初始延迟上,初始延迟仍会淡出,一旦淡出完成,它就会淡入。

我想默认 .stop() 有清除队列和 jumptoend 为 false 所以它会首先完成所有动画。我不得不使用

.stop(true, true)

为了清空队列,结束所有正在进行的动画。 我刚刚意识到它们在 JQuery 文档中都设置为 false。

.stop( [clearQueue ] [ jumpToEnd ] )

clearQueue(默认值:false) 类型:布尔 一个布尔值,指示是否也删除排队的动画。默认为假。

jumpToEnd(默认值:false) 类型:布尔 一个布尔值,指示是否立即完成当前动画。默认为假。