【发布时间】:2018-02-12 20:31:04
【问题描述】:
我试图在鼠标悬停时显示 div,但它在闪烁,我如何显示/隐藏而没有任何抖动和平滑过渡?
我也尝试过使用 jquery 淡入/淡出,但仍然闪烁。
这里是代码
body {
margin: 0;
}
.row {
float: left;
width: 100%;
}
.col {
float: left;
width: 25%;
position: relative;
margin: 0 10px 0 0;
}
.front {
width: 100%;
height: 300px;
background-color: #999
}
.back {
position: absolute;
left: 0;
top: 0;
height: 300px;
opacity: 0;
visibility: hidden;
background-color: #ff0;
z-index: 2;
width: 100%;
}
.front:hover + .back {
opacity: 1;
visibility: visible;
}
<div class="row">
<div class="col">
<div class="front">This is front div</div>
<div class="back">This is back div</div>
</div>
<div class="col">
<div class="front">This is front div</div>
<div class="back">This is back div</div>
</div>
<div class="col">
<div class="front">This is front div</div>
<div class="back">This is back div</div>
</div>
</div>
【问题讨论】:
-
你的问题是,如果后面的 div 出现,你不再悬停在前面的 div 上,所以它消失了,所以你再次悬停在前面的 div 上,所以后面的 div再次出现 - 等等令人作呕。如果我是你,我会选择使用 JS 或 JQuery 的
mouseenter/mouseleave方法 -
@Tijmen 我认为 JavaScript 也需要,直到我看到下面的答案
-
@Script47 是的,我什至还没有考虑过仅使用 CSS 的解决方案,这可能更好。
标签: javascript html css css-transitions