【发布时间】:2020-01-10 17:28:45
【问题描述】:
我有一张id="logo" 的图片。如果有人将鼠标悬停在图像元素上,我将隐藏图像并同时显示一个句子。一旦有人做了鼠标离开,图像就会回到原来的位置,句子就消失了。
我想要达到的目标:
另外我在三个单独的span 中有三个句子。如果有人第一次悬停在图像上,那么我想显示第一句话,如果有人第二次悬停在图像上,那么我想显示第二句话,如果第三次悬停,那么我想显示第三句。我的代码仓库是here。 最清楚,我要实现this logo hover animation
$(document).ready(function(){
var logo_img = $(".logo_container img");
$(logo_img).hover(function() {
$(logo_img).css("display", "none")
$(".logo_container span.first").css("display", "block")
},
function(){
$(logo_img).css("display", "block")
$(".logo_container span.first").css("display", "none")
});
});
body{padding: 0 20px; font-family: "Gotham A", "Gotham B", sans-serif;}
.logo_container a{text-decoration: none; color: #2F2F2F;}
.logo_container img, .logo_container span{display: inline-block;}
.logo_container img{
max-width: 50px;
height: auto;
}
.logo_container .slogan{font-size: 1.5rem; position: relative; top: 10px;}
.logo_container span.slogan{display: none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<header id="main-header">
<div class="container">
<div class="logo_container">
<a href="index.html">
<img src="https://raw.githubusercontent.com/shihab0915/logo_animation/master/img/logo.png" id="logo" >
<span class="slogan first">first sentence</span>
<span class="slogan second">second sentence</span>
<span class="slogan third">third sentence</span>
</a>
</div>
</div>
</header>
【问题讨论】:
-
我怀疑这里有一个 jQuery 特定的东西可以帮助你。似乎您只需要一些基本的 JS 来跟踪悬停计数。您已经完成了悬停事件处理,现在您只需要检查计数并显示适当的消息。更简单的是,我会考虑使用弹出/推送方法。只需将每条消息放在一个数组中,悬停显示弹出的消息,然后将其推回数组。这样您就不必跟踪任何内容。
-
编辑我之前的评论:我应该说pop/unshift(弹出最后一个并将其取消移位到数组的开头)
-
您可以在每个悬停事件上增加一个计数器,并根据除以 3 的余数显示 3 个不同的
<span>元素之一:(counter % 3)。 -
试图弄清楚你所说的。谢谢@BradEvans Romen
标签: javascript jquery animation hover jquery-hover