我正在制作一个由CSS3驱动的简单目标网页。为了使它看起来很棒,有一个<a>隆重的表演:
<a>
@keyframes splash { from { opacity: 0; transform: scale(0, 0); } 50% { opacity: 1; transform: scale(1.1, 1.1); } to { transform: scale(1, 1); } }
为了使它更加出色,我添加了一个悬停动画:
@keyframes hover { from { transform: scale(1, 1); } to { transform: scale(1.1, 1.1); } }
但是问题来了!我分配了这样的动画:
a { /* Some basic styling here */ animation: splash 1s normal forwards ease-in-out; } a:hover { animation: hover 1s infinite alternate ease-in-out; }
一切都很好:<a>飞溅到用户脸上,当他徘徊时有很好的振动。用户模糊后,立即<a>填充,平滑内容突然结束并<a>重复splash-animation。(这对我来说是合乎逻辑的,但我不希望这样做)没有某种JavaScript类Jiggery Pokery,有什么方法可以解决此问题?
splash
经过数小时的谷歌搜索:不,没有JavaScript是不可能的。该animation-iteration-count: 1;内部保存在animationshothand属性,它被 重置了和覆盖 上:hover。当我们模糊化<a>并释放:hover旧类时,旧类将 重新应用 ,因此再次 重置 该animation属性。
animation-iteration-count: 1;
animation
:hover
可悲的是,没有办法在元素状态之间保存某些属性状态。
您必须使用JavaScript。