【发布时间】:2015-03-12 09:33:18
【问题描述】:
我有一个 div,我在其中为内容设置动画:
#container {
position: relative;
width: 100px;
height: 100px;
border-style: inset;
}
#content {
visibility: hidden;
-webkit-animation: animDown 1s ease;
position: absolute;
top: 100px;
width: 100%;
height: 100%;
background-color: lightgreen;
}
#container:hover #content {
-webkit-animation: animUp 1s ease;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
}
@-webkit-keyframes animUp {
0% {
-webkit-transform: translateY(0);
visibility: hidden;
opacity: 0;
}
100% {
-webkit-transform: translateY(-100%);
visibility: visible;
opacity: 1;
}
}
@-webkit-keyframes animDown {
0% {
-webkit-transform: translateY(-100%);
visibility: visible;
opacity: 1;
}
100% {
-webkit-transform: translateY(0);
visibility: hidden;
opacity: 0;
}
}
<div id="container">
<div id="content"></div>
</div>
悬停时内容会滑入容器 div。
我的问题是,当我刷新页面时,页面加载 #content 的 animDown 动画将运行,我希望它仅在悬停事件后运行。
有没有办法做这个纯 CSS,或者我必须在 JS 中找出一些东西?
【问题讨论】:
-
@FabrizioCalderan 好主意,但这只会延迟动画,当类被删除时它仍然会错误地动画