如何解决jQuery默认情况下的延迟淡出,当mouseout淡出后仍保持鼠标输入可见时
我正在尝试制作一个框,如果不执行任何操作,则框会在3秒后自动淡出,但是如果用户将鼠标放在框内,它将停止/阻止淡出并继续显示,然后一旦用户的鼠标离开,它就会消失。
我用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) 类型:布尔 一个布尔值,指示是否也要删除排队的动画。默认为false。
jumpToEnd(默认值:false) 类型:布尔 一个布尔值,指示是否立即完成当前动画。默认为false。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。