为了在5秒后隐藏元素,我使用了下面的代码。
但它在Firefox中不起作用。
<div class="classname">This will hide</div>
&#13;
a
&#13;
答案 0 :(得分:2)
上述代码存在一些问题:
visibility
(webkit),另一个是动画overflow
(标准)。overflow
属性为not animatable。visibility
属性的问题历史(这不是你的错,而是Firefox本身的问题,你可以在SO上找到很多关于它的问题)。由于运行动画的方式(持续时间为0秒),您可以使用CSS动画中的from
来欺骗Firefox。问题是Firefox不会为visibility
设置动画,但无论如何它都会在动画的from
部分应用样式,因此您将获得所需的效果。
.classname {
-webkit-animation: cssAnimation 0s ease-in 5s forwards;
-moz-animation: cssAnimation 0s ease-in 5s forwards;
-o-animation: cssAnimation 0s ease-in 5s forwards;
animation: cssAnimation 0s ease-in 5s forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes cssAnimation {
from {
visibility:hidden;
}
to {
width:0;
height:0;
visibility:hidden;
}
}
@-webkit-keyframes cssAnimation {
from {
visibility:hidden;
}
to {
width:0;
height:0;
visibility:hidden;
}
}
<div class="classname">This will hide</div>
如果动画的持续时间高于0秒,则此解决方案无效;但由于更改是自动的,因此工作正常(并且不会影响其他浏览器)。
此解决方案的优点:
缺点:
答案 1 :(得分:0)
尝试使用固定的width
和height
为您的阻止(%
或px
)和opacity
代替visibility
- {{ 3}}:
.classname {
width: 200px;
height: 50px;
-webkit-animation: css-animation 0s ease-in 5s forwards;
animation: css-animation 0s ease-in 5s forwards;
}
@-webkit-keyframes css-animation {
to {
width: 0;
height: 0;
opacity: 0;
}
}
@keyframes css-animation {
to {
width: 0;
height: 0;
opacity: 0;
}
}