html - 如何在视图上为 SVG 设置一次动画,然后在每次悬停时设置动画?
问题描述
我在 div 上有这个动画。我想要的是当页面加载时,它应该动画一次。当我将鼠标悬停在它上面时,它应该再次动画。
动画在悬停或加载时工作正常。但是当我尝试两种方式(如我的示例中)时,它不起作用。为什么它不起作用?
我也尝试过在悬停时再次定义动画而不是再次定义动画,animation-play-state: running
但这也不起作用。当我在 chrome 开发工具中查看它并强制将鼠标悬停在box
元素上时,我可以看到选择器在那里,但动画什么也不做。
同样好奇的是,当我将悬停动画设置为无限时,animation: test 1s infinite;
它就可以工作了。当我希望它运行一次时,它只是不起作用。
@keyframes test {
0% {
transform: scale(1);
}
25% {
transform: scale(1.25);
}
80% {
transform: scale(0.85);
}
100% {
transform: scale(1);
}
}
.box {
width: 300px;
height: 300px;
background-color: black;
display: block;
animation: test 1s;
}
.box:hover {
animation: test 1s;
}
<div class="box"></div>
解决方案
您可以稍后依靠过渡来模拟动画的相同效果。我依靠cubic-bezier()
创建这样的效果,我邀请您阅读我的文章以了解它是如何工作的:https ://css-tricks.com/advanced-css-animation-using-cubic-bezier/
@keyframes test {
25% {
transform: scale(1.25);
}
80% {
transform: scale(0.85);
}
}
.box {
width: 300px;
height: 300px;
background-color: black;
display: block;
animation: test 1s;
}
.box:hover {
transform:scale(1.02);
transition:1s cubic-bezier(0.5,50,0.5,-50);
}
<div class="box"></div>
推荐阅读
- python - 如何将字符串列表转换为列表列表?
- java - 我应该如何处理 Safari 上的 Selenium .click() 方法?
- jboss - 远程与 jconsole 播种 jboss 7.0 eap 的性能
- android - 使用 Android 的 ConstraintLayout 创建类似表格的视图
- mongodb - 使用 $unwind 和排序的 MongoDB 分页
- jquery - 如何使用 AJAX 数据和变量在同一页面上呈现多个 Chart.JS 图表
- mongodb - 修剪来自logstash的所有字符串字段 - jdbc输入
- reactjs - 解析错误:意外的令牌,预期的“;
- java - 来自 Tomcat Azure 的文件上传限制异常
- sapui5 - smarttable(ui.table)不请求所有数据