我有一个元素,我有一组@ -webkit-keyframes来动画。在页面加载时,这些关键帧运行,并且介绍看起来很棒。
接下来,我在悬停时有第二组@ -webkit-keyframes并设置为重复,因此在悬停时,该元素具有循环动画。这也很有效。
但是,当我将鼠标从元素移开时,第一个(前奏)关键帧组会再次运行。我不希望它在第一次运行后运行。在CSS中有一种简单的方法可以防止这种情况吗?
我拥有的最小例子
#e { -webkit-animation: fadeIn 1s ease-out 0.5s; } /* Fades in on load, BUT gets called when mouse moves away as well */
#e:hover { -webkit-animation: pulse 1s ease-in-out 0s infinite alternate; } /* Works fine, pulses on hover */
此外,有1500+声望的人可以编辑标签并添加webkit-animation标签吗?我无法相信它还没有被创造出来......:\
答案 0 :(得分:3)
没有纯粹的CSS方式来完成你需要的东西。您可以将动画添加到父元素或包装器,并分别为每个元素设置动画:
.wrapper {
-webkit-animation: fadeIn .5s ease-out 0 1;
}
#e {
width: 100px;
height: 100px;
background-color: #000;
}
#e:hover {
-webkit-animation: pulse 100ms ease-in-out 0s infinite alternate;
}
@-webkit-keyframes fadeIn {
0% { opacity: 0; }
100% { opacity: 0.5;}
}
@-webkit-keyframes pulse {
0% { background-color: #000; }
100% { background-color: #c00; }
}