为了账号安全,请及时绑定邮箱和手机立即绑定

CSS3动画简要总结

标签:
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);       /* IE 9 */-webkit-transform: translate(50px,100px);   /* Safari and Chrome */-o-transform: translate(50px,100px);        /* Opera */-moz-transform: translate(50px,100px);      /* Firefox */}

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

rotate旋转

div{transform: rotate(30deg);-ms-transform: rotate(30deg);       /* IE 9 */-webkit-transform: rotate(30deg);   /* Safari and Chrome */-o-transform: rotate(30deg);        /* Opera */-moz-transform: rotate(30deg);      /* Firefox */}

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

scale改变宽高

div{transform: scale(2,4);-ms-transform: scale(2,4);  /* IE 9 */-webkit-transform: scale(2,4);  /* Safari 和 Chrome */-o-transform: scale(2,4);   /* Opera */-moz-transform: scale(2,4); /* Firefox */}

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

skew围绕X轴或Y轴翻转

div{transform: skew(30deg,20deg);-ms-transform: skew(30deg,20deg);   /* IE 9 */-webkit-transform: skew(30deg,20deg);   /* Safari and Chrome */-o-transform: skew(30deg,20deg);    /* Opera */-moz-transform: skew(30deg,20deg);  /* Firefox */}

值 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);     /* IE 9 */-moz-transform:matrix(0.866,0.5,-0.5,0.866,0,0);    /* Firefox */-webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */-o-transform:matrix(0.866,0.5,-0.5,0.866,0,0);      /* Opera */}



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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消