我正在寻找一个解决方案,以保持一个div可见的悬停,它应该保持可见,直到我再次悬停,而不是在一个鼠标退出事件。
可以悬停的列表的当前标记:
<ul class="crops-archive-home">
<li class="vegetables" style="background: #85bc22">
<a href="#">Vegetables</a>
</li>
<li class="bedding-plants" style="background: #00843a">
<a href="#">Bedding plants</a>
</li>
etc....
</ul>
以及需要在悬停时显示的DIV
<div class="quote vegetables" style="background: rgba(133,188,34,0.8)">
<p>Lorem ipsum advised growbags and growblocks</p>
<hr>
<p class="sub-quote">Now Victor can grow peat-free and organic</p>
</div>
<div class="quote bedding-plants" style="background: rgba(0,132,58,0.8)">
<p>Bedding plants root best on Lorem Ipsum Substrates</p>
<hr>
<p class="sub-quote">Healthy plants, stronger roots</p>
</div>
etc....
这是当前的CSS
.quote{
opacity: 0;
transition: opacity 0s 5s;
}
.quote.active{
opacity: 1;
transition: all .4s;
}
以及使用的jQuery:
jQuery(document).ready(function(){
jQuery(".vegetables").hover(function(){
jQuery('.quote.vegetables').toggleClass('active');
});
jQuery(".bedding-plants").hover(function(){
jQuery('.quote.bedding-plants').toggleClass('active');
});
etc....
};
当前设置显示报价div在悬停,它保持可见5秒,但可以重叠与另一个报价时,悬停在一个新的链接在5秒内。
已经用.show()
和.hide()
尝试过了,但是引号立即消失了。
如果有一组特定的DIV是该逻辑的一部分,那么最好在悬停时添加(而不是切换)active
类,同时通过循环遍历作为该逻辑一部分的其他元素的数组,从这些元素中删除active
类。
您还可以跟踪变量中的活动类,并在每次悬停时更新它,而不是循环遍历其他元素的数组。
关键是使用.addClass
而不是ToggleClass
。
删除现有的活动
类:
$('div.quote').each(function(div) {
div.removeClass('active');
})