如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。
@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。
浏览器支持
Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。
Chrome 和 Safari 需要前缀 -webkit-。
注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性。
@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}
@-moz-keyframes myfirst /* Firefox */
{
from {background: red;}
to {background: yellow;}
}
@-webkit-keyframes myfirst /* Safari 和 Chrome */
{
from {background: red;}
to {background: yellow;}
}
/*注:下面的写法将不再写 -webkit- 和 -moz- */
或者用%表示时间段
@keyframes myfirst
{
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
注意:当您在 @keyframes 中创建动画时,需要把它捆绑到某个选择器,否则不会产生动画效果。
通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:
规定动画的名称
规定动画的时长
把 “myfirst” 动画捆绑到 div 元素,时长:3 秒:
div{
animation: myfirst 3s;
}
其中animation有6个属性
div {
animation: myfirst 5s linear 1s infinite alternate;
}
动画名称、动画时间5s、动画速度:匀速、延迟开始时间:1s、动画播放次数:无限次、动画完成后下一周期:轮流反向播放。
transform的含义是:改变,使…变形;转换
transform的属性包括:
下面我们来分解各个属性的用法:
含义:旋转;其中“deg”是“度”的意思,如“10deg”表示“10度”。
.demo_transform1{
transform:rotate(10deg);
-webkit-transform:rotate(10deg);
-moz-transform:rotate(10deg);
}
含义:倾斜;其中“deg”是“度”的意思,如“20deg”表示“10度”。
.demo_transform2{
transform:skew(20deg);
-webkit-transform:skew(20deg);
-moz-transform:skew(20deg);
}
含义:比例;可传2个值,当写一个时,表示xy都一样,“1.5”表示以1.5的比例放大,如果要放大2倍,须写成“2.0”,缩小则为负“-”。
.demo_transform2{
transform:scale(1.5);
-webkit-transform:scale(1.5);
-moz-transform:scale(1.5);
}
含义:变动,位移;可以传3个值,x、y。
也可以写成 translateX( ), translateY( ).
如表示向右位移100像素,即第一个值为100px,如果向上位移,把后面的“0”改个值就行,向左向下位移则为负“-”。
.demo_transform2{
transform:translate(100px,0);
-webkit-transform:translate(100px,0);
-moz-transform:translate(100px,0);
}
或者
.demo_transform2{
transform:translateX(100px);
-webkit-transform:translateX(100px);
-moz-transform:translateX(100px);
}
当鼠标经过时,宽度边为300px,时长为 2 秒:
div{
width:200px;
}
div{
transition: width 2s;
-moz-transition: width 2s; /* Firefox 4 */
-webkit-transition: width 2s; /* Safari 和 Chrome */
}
div:hover {
width:300px;
}
transition有4个属性:
1、transition-property:规定应用过渡的 CSS 属性的名称。with可获得宽度属性,height可获得高度属性,transform可获得动画属性,all 可以获取所有属性,所以推荐写all
2、transition-duration:定义过渡效果花费的时间。默认是 0。
3、transition-timing-function:规定过渡效果的时间曲线。默认是 “ease”。有5个属性,分别为:
4个属性可以合起来写
div{
transition: all 1s linear .5s;
}
4个属性分别表示:所有属性都有动作效果、动作时间为1S、速度为匀速、延迟0.5S开始动画
转自 https://www.cnblogs.com/shiweida/p/7785185.html