栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

CSS3动画简要总结

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CSS3动画简要总结

主要总结一下CSS3动画中这几块:
transition(过渡),animation(动画),transform转换(rotate,translate,scale,skew,matrix)

1、transition(过渡)

img{    height:15px;    width:15px;
}img:hover{    height: 450px;    width: 450px;
}

这个变化是没有时间轴的,都是立即完成,当加入transiton后:

img{    transition: 1s 1s height ease;
}

简写形式,可以单独定义成各个属性:

img{
    transition-property: height; //高度过渡
    transition-duration: 1s;
    transition-delay: 1s; //延迟一秒
    transition-timing-function: ease; //逐渐变慢}

目前,各大浏览器(包括IE 10)都已经支持无前缀的transition,所以transition已经可以很安全地不加浏览器前缀。

2、animation(动画)
CSS Animation需要指定动画一个周期持续的时间,以及动画效果的名称。

div:hover {  animation: 1s rainbow;
}

上面代码表示,当鼠标悬停在div元素上时,会产生名为rainbow的动画效果,持续时间为1秒。为此,我们还需要用keyframes关键字,定义rainbow效果。

@keyframes rainbow {
  0% { background: #c00; }
  50% { background: orange; }
  100% { background: yellowgreen; }
}

上面代码表示,rainbow效果一共有三个状态,分别为起始(0%)、中点(50%)和结束(100%)。如果有需要,完全可以插入更多状态。
也可以指定动画具体播放的次数,比如3次,无限循环就用infinite:

div:hover {  animation: 1s rainbow 3;
}

keyframes关键字用来定义动画的各个状态,它的写法相当自由,0%可以用from代表,100%可以用to代表,因此之前的代码等同于下面的形式:

@keyframes rainbow {  from { background: #c00 }
  50% { background: orange }  to { background: yellowgreen }
}

3、transform转换

translate移动

div{transform: translate(50px,100px);-ms-transform: translate(50px,100px);       -webkit-transform: translate(50px,100px);   -o-transform: translate(50px,100px);        -moz-transform: translate(50px,100px);      }

值 translate(50px,100px) 把元素从左侧移动 50 像素,从顶端移动 100 像素。

rotate旋转

div{transform: rotate(30deg);-ms-transform: rotate(30deg);       -webkit-transform: rotate(30deg);   -o-transform: rotate(30deg);        -moz-transform: rotate(30deg);      }

值 rotate(30deg) 把元素顺时针旋转 30 度。

scale改变宽高

div{transform: scale(2,4);-ms-transform: scale(2,4);  -webkit-transform: scale(2,4);  -o-transform: scale(2,4);   -moz-transform: scale(2,4); }

值 scale(2,4) 把宽度转换为原始尺寸的 2 倍,把高度转换为原始高度的 4 倍。

skew围绕X轴或Y轴翻转

div{transform: skew(30deg,20deg);-ms-transform: skew(30deg,20deg);   -webkit-transform: skew(30deg,20deg);   -o-transform: skew(30deg,20deg);    -moz-transform: skew(30deg,20deg);  }

值 skew(30deg,20deg) 围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度。

matrix() 方法把所有 2D 转换方法组合在一起。需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。

div{transform:matrix(0.866,0.5,-0.5,0.866,0,0);-ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0);     -moz-transform:matrix(0.866,0.5,-0.5,0.866,0,0);    -webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); -o-transform:matrix(0.866,0.5,-0.5,0.866,0,0);      }



作者:JokerPeng
链接:https://www.jianshu.com/p/33a341e1b381


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/242836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号