React实现持续旋转的loading动画

实现一个图标的持续旋转效果,css就可以实现。

首先用keyframes定义一个旋转效果:

TypeScript 复制代码
import { keyframes } from '@mui/material';


const rotate = keyframes`
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
`;

这个效果就是旋转360度,接着我们把这个效果应用到具体的图标上,我们使用MUI的一个图标:

TypeScript 复制代码
import RefreshIcon from '@mui/icons-material/Refresh';

然后设置一个class样式:

TypeScript 复制代码
<RefreshIcon className="rotateIcon" fontSize="large" />

rotateIcon就是自定义的样式:

css 复制代码
'.rotateIcon': {
      animation: `${rotate} 0.8s linear infinite`,
 },

animation属性就是设置动画效果,具体参数里, 0.8s是旋转360度的时间,linear是指旋转过程是均匀的速度,infinite是永久,也就是持续不停的旋转。

相关推荐
郝学胜-神的一滴6 分钟前
Linux系统函数link、unlink与dentry的关系及使用注意事项
linux·运维·服务器·开发语言·前端·c++
昔人'36 分钟前
css`text-wrap:pretty`
前端·css
勇敢di牛牛42 分钟前
Vue+mockjs+Axios 案例实践
前端·javascript·vue.js
詩句☾⋆᭄南笙1 小时前
HTML列表、表格和表单
服务器·前端·html·表格·列表·表单
IT_陈寒1 小时前
Python性能翻倍的5个冷门技巧:从GIL逃逸到内存视图的实战优化指南
前端·人工智能·后端
南城巷陌1 小时前
错误边界:用componentDidCatch筑起React崩溃防火墙
前端·react.js·前端框架
FinClip1 小时前
OpenAI推出Apps SDK,你的企业App跟上了吗?
前端·app·openai
馨谙1 小时前
Linux中的管道与重定向:深入理解两者的本质区别
前端·chrome
夏天想1 小时前
复制了一个vue的项目然后再这个基础上修改。可是通过npm run dev运行之前的老项目,发现运行的竟然是拷贝后的项目。为什么会这样?
前端·vue.js·npm
@大迁世界2 小时前
这个 CSS 特性,可能终结样式冲突
前端·css