html - 如何使这个 CSS 动画流畅?
问题描述
而不是以锯齿状的方式摇摆不定,我希望它在每次旋转之间进行插值。
div {
border: 1px solid red;
width: 600px;
height: 300px;
animation: shake 0.75s;
animation-iteration-count: infinite;
}
@keyframes shake {
0% { transform: rotate(0deg); }
25% { transform: rotate(-4deg); }
50% { transform: rotate(0deg); }
75% { transform: rotate(4deg); }
100% { transform: rotate(0deg); }
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div></div>
</body>
</html>
最好没有 JS,但 JS 或 jQuery 就可以了。
解决方案
你必须添加过渡属性和你的 CSS,然后它看起来像这样
div {
border: 1px solid red;
width: 600px;
height: 300px;
transition: 1s ease-in-out all;
animation: shake 0.75s;
animation-iteration-count: infinite;
}
@keyframes shake {
0% { transform: rotate(0deg); }
25% { transform: rotate(-4deg); }
50% { transform: rotate(0deg); }
75% { transform: rotate(4deg); }
100% { transform: rotate(0deg); }
}
如果您发现很难看到更改,请减少动画时间并增加过渡时间
推荐阅读
- javascript - React - 带有扩展运算符的 setState 返回一个代理对象
- linux - 尝试为 Riscv 编译 FreeRtos。错误:指令 csrr 需要绝对表达式
- php - phpredis PHP Redis集群——我们的程序错误太多
- julia - 当子函数的域不同时,Julia中的分段函数
- php - laravel 图像验证 图像干预
- hyperledger-fabric - 使用 POST 到钱包/导入的导入卡在 composer card list 命令中不可用
- node.js - 如何在 Linux Mint 18.3 中安装 nodejs 版本 6
- django - Django:从今天开始给日期字段默认值一个月
- python - 根据人员列表和他们必须会面的人创建时间表
- c++ - 2个线程同时调用同一个函数