动画效果我们可以用js完成也可以用css3新增的动画完成,不过在工作中建议能用css完成的动画就用css别用js
毕竟css渲染的效果比js更好
让我们先来了解下 css中的动画知识
CSS3动画是什么?
动画是使元素从一种样式逐渐变化为另一种样式的效果。
您可以改变任意多的样式任意多的次数。
要创建 CSS3 动画,你需要了解 @keyframes 规则。
@keyframes 规则是创建动画。
@keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。
keyframes myfirst { // myfirst 自定义动画名称
from {background: red;}
to {background: yellow;}
}
请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。
0% 是动画的开始,100% 是动画的完成。
为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。
keyframes myfirst {
0% {background: red;}
100% {background: yellow;}
}
// 将动画绑定在 div元素上
div { animation: myfirst 5s; } // 执行 myfirst 动画 在 5s内完成
也可以阶段性表示
@keyframes myfirst {
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
CSS3的动画属性
下面的表格列出了 @keyframes 规则和所有动画属性:
属性 | 描述 | CSS |
---|---|---|
@keyframes | 规定动画。 | 3 |
animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 | 3 |
animation-name | 规定 @keyframes 动画的名称。 | 3 |
animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 | 3 |
animation-timing-function | 规定动画的速度曲线。默认是 "ease"。 | 3 |
animation-fill-mode | 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 | 3 |
animation-delay | 规定动画何时开始。默认是 0。 | 3 |
animation-iteration-count | 规定动画被播放的次数。默认是 1。 | 3 |
animation-direction | 规定动画是否在下一周期逆向地播放。默认是 "normal"。 | 3 |
animation-play-state | 规定动画是否正在运行或暂停。默认是 "running"。 | 3 |
1.完成一个 正方形在页面上 形成一个正方形的移动规则
<div></div> // div元素
@keyframes translate{ // 定义动画
0%{
background-color: #f00;
left:0;
}
25%{
background: #0f0;
left:600px;
top:0;
}
50%{
background: #00f;
left:600px;
top:600px
}
75%{
background: #ff0;
left:0px;
top:600px;
}
100%{
background: #f00;
left:0;
top: 0;
}
}
div{ // div上应用动画
width: 200px;
height: 200px;
background-color: #f00;
position: relative;
animation: translate 8s linear 0.5s infinite alternate;// 动画名称 持续时间 平滑过渡 延迟5s 循环执行动画 按照原路径返回
}
2.图片在页面上旋转 大家可以去看下抖音的右下角有一个旋转的cd 就可以通过这个实现
<img src="a.png" alt="">
@keyframes xuan{
0% {
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}
img{
animate:xuan 3s linear 0.5s infinite; // 页面加载无限滚动
}