jquery - 在两个 div 之间移动鼠标时避免淡出
问题描述
在两个元素之间使用show
和hide
移动鼠标时效果很好。没有闪烁等。
$(".blocka,.blockb").mouseenter(function(){
$(".blockb").show();
});
$(".blocka,.blockb").mouseleave(function(){
$(".blockb").hide();
});
http://jsfiddle.net/alewolf/07sramtq/1/
但是,当使用时fadeIn
,fadeOut
动画总是在两个元素之间移动鼠标之间开始。
$(".blocka,.blockb").mouseenter(function(){
$(".blockb").fadeIn();
});
$(".blocka,.blockb").mouseleave(function(){
$(".blockb").fadeOut();
});
http://jsfiddle.net/alewolf/mLzejsvt/3/
我尝试添加超时,但没有奏效。
目标是只有当鼠标移到两个元素之外时,绿色框才会淡出。
有没有简单的方法来解决这个问题?
解决方案
发生这种情况是因为mouseenter
事件侦听器也添加到.blockb
. fadeIn
鼠标进入时需要停止动画blockb
。
查看片段。
$(".blocka").mouseenter(function(){
$(".blockb").fadeIn();
});
$(".blocka,.blockb").mouseleave(function(){
$(".blockb").fadeOut();
});
$(".blockb").mouseenter(function(){
$(".blockb").stop();
});
.blocka{width:150px;height:50px;background:red;}
.blockb{width:250px;height:50px;background:green; display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<fieldset>
<div class="blocka"></div>
<div class="blockb"></div>
</fieldset>
推荐阅读
- javascript - 倒计时功能在 12 秒后继续循环 - 请协助
- wpf - 如何确定您使用的是 WinUI 2 还是 WinUI 3?
- javascript - chart.js:如何获取标签的图例颜色
- asp.net-mvc - 如何在一张表中显示关系模型?
- tensorflow - 如何为 tensorflow 冻结模型生成 prototxt 文件?
- python - 将浮点数转换为日期
- reactjs - Apollo Client - 如何使用使用 compose 的 HOC 组件测试使用多个查询的组件
- python - 如何遍历列表并转换数据类型
- mysql - 弹簧靴和 RDS 数据库。连接失败
- ruby - 我无法在我的 github 博客上更改 jekyll 语法荧光笔