html - jQuery - 悬停时淡入图像,之后淡出
问题描述
我目前正在努力解决我正在设计的全屏菜单上的问题。
菜单有四个项目——我希望每个菜单项都有一个图像淡入。如果它不再悬停在该项目上,它可以恢复到主图像。
我的菜单 HTML 如下:
<div class = "menu">
<div class = "images">
<span class = "bg bg1 hide"></span>
<span class = "bg bg2 hide"></span>
<span class = "bg bg3 hide"></span>
<span class = "bg bg4 hide"></span>
</div>
<div class = "nav">
<div class = "menu">
<ul>
<li>
<span id = "order"> 01. </span>
<span id = "menu"> Home /</span>
<span id = "tag"> intro </span>
</li>
<li>
<span id = "order"> 02. </span>
<span id = "menu"> About /</span>
<span id = "tag"> our history </span>
</li>
<li>
<span id = "order"> 03. </span>
<span id = "menu"> Careers /</span>
<span id = "tag"> work here </span>
</li>
<li>
<span id = "order"> 04. </span>
<span id = "menu"> Contact /</span>
<span id = "tag"> get in touch </span>
</li>
</ul>
</div>
</div>
</div>
然后我运行以下 jQuery 脚本:
<script type ="text/javascript">
jQuery(function() {
$(".menu-item-1").hover(function() {
$(".bg1").fadeIn(800);
}, function() {
$(".bg1").fadeOut(800);
})
$(".menu-item-2").hover(function() {
$(".bg2").fadeIn(800);
}, function() {
$(".bg2").fadeOut(800);
})
$(".menu-item-3").hover(function() {
$(".bg3").fadeIn(800);
}, function() {
$(".bg3").fadeOut(800);
})
$(".menu-item-4").hover(function() {
$(".bg4").fadeIn(800);
}, function() {
$(".bg4").fadeOut(800);
})
})
</script>
我对从这里去哪里有点茫然——真的很感谢你的帮助!
解决方案
我在 li 标签中添加了 class="menu-item-1" 和 data 属性
我评论了我所有的javascript。
jQuery(function() {
// we find all animated span .bg
var isAnimating = $(".bg").is(':animated');
// we check if the span .bg are animated
if (!isAnimating) {
// we get all hover event on li with class starting or like "menu-item-"
$("li[class^='menu-item-'],li[class*='menu-item-']").hover(function() {
// we put in selector the value of data background
$("." + $(this).attr("data-background")).fadeIn(800);
}, function() {
$("." + $(this).attr("data-background")).fadeOut(800);
})
}
})
.bg { display:none }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "menu">
<div class = "images">
<span class = "bg bg1 hide">bg1</span>
<span class = "bg bg2 hide">bg2</span>
<span class = "bg bg3 hide">bg3</span>
<span class = "bg bg4 hide">bg4</span>
</div>
<div class = "nav">
<div class = "menu">
<ul>
<li class="menu-item-1" data-background="bg1">
<span id = "order"> 01. </span>
<span id = "menu"> Home /</span>
<span id = "tag"> intro </span>
</li>
<li class="menu-item-2" data-background="bg2">
<span id = "order"> 02. </span>
<span id = "menu"> About /</span>
<span id = "tag"> our history </span>
</li>
<li class="menu-item-3" data-background="bg3">
<span id = "order"> 03. </span>
<span id = "menu"> Careers /</span>
<span id = "tag"> work here </span>
</li>
<li class="menu-item-4" data-background="bg4">
<span id = "order"> 04. </span>
<span id = "menu"> Contact /</span>
<span id = "tag"> get in touch </span>
</li>
</ul>
</div>
</div>
</div>
推荐阅读
- azure - 设置字符串变量的最大长度
- visual-studio - 更新解决方案时出现 AnkhSVN 错误:无法写入连接:尝试对非套接字的操作进行操作
- javascript - ./src/App.js 模块未找到:无法解析 xxx 中的“@material-ui/data-grid”
- typo3 - 简化 TYPO3 中内容元素/TCA 的创建
- python - Scikit-Learn 包装器和 RandomizedSearchCV:RuntimeError
- javascript - 使用正则表达式验证电子邮件,其中域部分中的扩展数可能会有所不同
- android - 5分钟后自动注销应用程序在xamarin表单中处于终止状态或后台状态?
- reactjs - Suspense 数据获取中的 UseRef
- pandas - 如何将数据框文本列拆分为布尔列
- excel - 尝试使用 VBA 对一行中的值求和,但无法解决代码中的错误