CSS3动画的属性总的来说只有transform(变形),transition(过渡),和animation(动画)这三种。
transition:1s(过渡的动画效果):从一个人具体的值到另一个过渡的值
transform:rotate(300deg) x,y 旋转 transform:rotageX(300deg) transform:rotageY(300deg)
transform:scale(0.5,2) 缩放x轴,y轴 >1放大 <1缩小
transform:translateX(100px)平移x轴 transform:translateY(100px) 平移y轴
transform:translate(100px 100px) 平移x,y轴
transition:rotate(300deg) scale(0.5,2) 一边缩放,一边旋转
transition:transform 1s 指定对transform 起效果
transition:margin 1s 指定对margin 起效果接改变大小和位置,显示改变的结构,没有过渡和形变时间
animation重点是在时间轴和关键帧,是在于创建帧,让不同帧在不同的时间节点发生不同变化,基于animation和@keyframe 的动画一方面也是为了实现表现与行为的分离
小例子
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>逐帧动画</title> <style type="text/css"> .a{ width: 1000px; height: 400px; background: #bbb; position: relative; margin: 100px auto; overflow: hidden; } .b{ font-size: 50px; width: 400px; height: 150px; position: absolute; top:-150px; left: 50px; text-align: center; background: #aaa; line-height: 150px; animation:s 2s infinite; } .c{ font-size: 50px; width: 400px; height: 150px; position: absolute; bottom:-150px; right: 50px; background: #ccc; line-height: 150px; animation:ss 2s infinite; } @keyframes ss{ 0%{ transform:translateY(0px); background: #888; } 50%{ transform:translateY(-90px); background: #7dd; } 50%{ transform:translateY(-150px); background: #3aa; } } @keyframes s{ 0%{ transform:translateY(0px); background: #888; } 50%{ transform:translateY(90px); background: #7dd; } 50%{ transform:translateY(150px); background: #3aa; } } </style> </head> <body> <header> <div> <div>啦啦啦啦啦啦啦啦</div> <div>啦啦啦啦啦啦啦啦</div> </div> </header> </body> </html>
使用css3实现动画的好处
1、浏览器可以对动画进行优化(元素不可见时不动画,减少对FPS的影响)
2、实现代码比较简单
3、可以利用硬件加速
4、不占用主线程
缺点:
1、兼容性不好。
2、在动画控制上不够灵活,运行过程较弱,无法附加绑定回调函数,不能在特定的位置上添加回调函数或是绑定回放事件,无进度报告。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)