javascript - 使用.animate 为.mouseout 淡出过渡?
问题描述
我有一个 div,当你悬停时,另一个 div 会出现。它们不是父/子或包装,所以我使用了一个脚本来让它最简单地工作并拥有我需要的东西。使用 .mouseover,悬停 div 会慢慢出现,这正是我想要的。
我的问题是让 .mouseout 使悬停 div 慢慢消失并保持消失。我尝试了不同的变化,但我得到的最接近的是让 div 慢慢消失,但它会在我设置的延迟后弹出。
我对js很陌生,真的一点经验都没有。我编写了这段代码的第一部分,但 .mouseout 是我遇到的问题。
这是我的代码:
$("#show_stats1 h1").mouseover(function() { $(".stat-1_info").css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1}, 200); });
$("#show_stats1 h1").mouseout(function() { $(".stat-1_info").css({opacity: 0.0, visibility: "hidden"}).animate({opacity: 1}, 200); });
我知道这可能很简单,但我对 js 了解不多。
这是html:
<div id="show_stats1" class="stats">
main, visible div
</div>
<div class="stat-1_info" style="visibility:hidden;">
hidden div to be shown on hover
</div>
这是一个 jsfiddle https://jsfiddle.net/yt3h9xnf/
解决方案
您可以将该.animate()
方法与opacity
或一起使用visibility
。没有理由同时使用两者。
如果您不知道使用哪一个,请在此处阅读此答案。
$("#show_stats1 h1").mouseover(function() {
$(".stat-1_info").animate({opacity: 1}, 200);
});
$("#show_stats1 h1").mouseout(function() {
$(".stat-1_info").animate({opacity: 0}, 200);
});
.stat-1_info {
opacity: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="show_stats1" class="stats">
<h1>main, visible div</h1>
</div>
<div class="stat-1_info">
hidden div to be shown on hover
</div>
推荐阅读
- sql-server - 带有变量的数据流问题中的 OLE DB 源
- sql - 如何从复杂条件下的表中选择值?
- spring-boot - spring-boot-starter-data-jpa 插入查询不将数据保存在数据库中
- php - 是否可以在 wordpress 管理面板中将上一个/下一个分页更改为编号分页?
- python - 如何从 __init__ 构造函数访问元素
- string - 将字符串变量插入 RichTextBox 时不需要的换行符
- java - 使用日历视图减去日期
- r - 如何添加接近 3 的泊松分布曲线?
- ruby-on-rails - Rails simple_form - 是否可以仅使用按钮标签显示单选按钮?
- alexa - 如何仅为我的设备构建 Alexa 技能?