We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSS动画(CSS Animations)是为层叠样式表建议的允许可扩展标记语言(XML)元素使用CSS的动画的模块
即指元素从一种样式逐渐过渡为另一种样式的过程
常见的动画效果有很多,如平移、旋转、缩放等等,复杂动画则是多个简单动画的组合
css实现动画的方式,有如下三种:
css
transition
transform
animation
transition的属性如下:
举个例子,实现鼠标移动上去发生变化动画效果
<style> .base { width: 100px; height: 100px; background-color: #0EA9FF; transition: 2s; } /*简写*/ /*transition: all 2s ease-in 500ms;*/ .base:hover { width: 200px; height: 200px; background-color: #5daf34; } </style> <div class="base"></div>
transform会直接使用硬件加速,在GPU中运行,绕开了软件渲染。并不是所有的CSS属性变化都会直接在GPU处理。只有下面的属性会这样处理:
因此为了页面更加流畅,高性能的动画,我们需要尽可能的使用GPU来处理。
包含四个常用的功能:
一般配合transition过度使用
注意: transform不支持inline元素,使用前把它变成block
inline
block
举个例子
<style> .base { width: 100px; height: 100px; display: inline-block; background-color: #0EA9FF; border-width: 5px; border-style: solid; border-color: #5daf34; transition-property: width, height, background-color, border-width; transition-duration: 2s; transition-timing-function: ease-in; transition-delay: 500ms; } .base2 { transform: none; transition-property: transform; transition-delay: 5ms; } .base2:hover { transform: scale(0.8, 1.5) rotate(35deg) skew(5deg) translate(15px, 25px); } </style> <div class="base base2"></div>
可以看到盒子发生了旋转,倾斜,平移,放大
CSS动画只需要定义一些关键的帧,而其余的帧,浏览器会根据计时函数插值计算出来,通过@keyframes来定义关键帧,通过使用transform开启硬件加速
CSS
@keyframes
因此,如果我们想要让元素旋转一圈,只需要定义开始和结束两帧即可:
@keyframes rotate{ from{ transform: rotate(0deg); } to{ transform: rotate(360deg); } }
from表示最开始的那一帧,to表示结束时的那一帧
from
to
也可以使用百分比刻画生命周期
@keyframes rotate{ 0%{ transform: rotate(0deg); } 50%{ transform: rotate(180deg); } 100%{ transform: rotate(360deg); } }
定义好了关键帧后,下来就可以直接用它了:
animation: rotate 2s;
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、是什么
CSS动画(CSS Animations)是为层叠样式表建议的允许可扩展标记语言(XML)元素使用CSS的动画的模块
即指元素从一种样式逐渐过渡为另一种样式的过程
常见的动画效果有很多,如平移、旋转、缩放等等,复杂动画则是多个简单动画的组合
css
实现动画的方式,有如下三种:transition
实现渐变动画transform
转变动画animation
实现自定义动画二、实现方式
1、transition实现渐变动画
transition
的属性如下:举个例子,实现鼠标移动上去发生变化动画效果
2、transform 转变动画
transform会直接使用硬件加速,在GPU中运行,绕开了软件渲染。并不是所有的CSS属性变化都会直接在GPU处理。只有下面的属性会这样处理:
因此为了页面更加流畅,高性能的动画,我们需要尽可能的使用GPU来处理。
包含四个常用的功能:
一般配合
transition
过度使用注意:
transform
不支持inline
元素,使用前把它变成block
举个例子
可以看到盒子发生了旋转,倾斜,平移,放大
3、animation 实现自定义动画
CSS
动画只需要定义一些关键的帧,而其余的帧,浏览器会根据计时函数插值计算出来,通过@keyframes
来定义关键帧,通过使用transform
开启硬件加速因此,如果我们想要让元素旋转一圈,只需要定义开始和结束两帧即可:
from
表示最开始的那一帧,to
表示结束时的那一帧也可以使用百分比刻画生命周期
定义好了关键帧后,下来就可以直接用它了:
参考文献
The text was updated successfully, but these errors were encountered: