当前位置:   article > 正文

css3宽度变大动画_如何快速上手基础的CSS3动画

css3 宽度动画渐变

5bd151294600bed458246f5943ce6f84.png
如何快速上手CSS3动画

前言

说起CSS3动画,就必须说说 transform,translate,transition,animation这4个属性,transform主要定义元素的动作,比如旋转、倾斜、位移等,translate是transform里面的属性,用于2D/3D位移。后2个主要对动作进行描述,动画时间、速度曲线、次数等。

703c0435aad7b5a7e5e5e7bdf1c97a4f.png

下面我用是一些简单的示例,让大家快速的入门上手:

快速开始第一个动画

  1. <style>
  2. .div1{
  3. width: 100px;
  4. background: red;
  5. /** 动画描述:宽度改变动画 用时 1s*/
  6. transition: width 1s;
  7. }
  8. .div1:hover{
  9. width: 200px;
  10. background: blue;
  11. }
  12. </style>
  13. <div class="div1">动画</div>

bae871b1837e4f19921651e73f5ee7d7.gif

这里hover事件时改变宽度和背景颜色,用transition来描述动画,由于我们只对width进行了描述,所以背景色,鼠标指上去,会立马变色,并不会有渐变的过程。

这里为什么用transition而不用animation?那就要说说他们直接的区别了。

transition需要触发一个事件, 而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值,从而达到一种动画的效果。transition属性是一个简单的动画属性,非常简单非常容易用。可以说它是animation的简化版本,是给普通做简单网页特效用的。

现在明白了吧,因为我们用的hover事件,所以要用transition

下面请看第二个例子

快速开始第二个动画

  1. <style>
  2. .div1{
  3. width: 100px;
  4. background: red;
  5. /** 动画描述:宽度颜色改变动画 用时 1s infinite(无限次)*/
  6. animation: second 1s infinite;
  7. color: #fff;
  8. }
  9. @keyframes second{
  10. /**开始(可以用百分比表示)*/
  11. from {
  12. width: 100px;
  13. background: red;
  14. }
  15. /**结束(可以用百分比表示)*/
  16. to {
  17. width: 200px;
  18. background: blue;
  19. }
  20. /** or */
  21. /**开始*/
  22. 0% {
  23. width: 100px;
  24. background: red;
  25. }
  26. /**中间可以加多个区间*/
  27. /**结束*/
  28. 100% {
  29. width: 200px;
  30. background: blue;
  31. }
  32. }
  33. </style>
  34. <div class="div1">动画</div>

c24b03d0d80e1f2713c4c1dcea1940f9.gif

这里动画从加载就开始执行,所以用了animation,改变宽度和背景色,用时1s,并且无限次循环执行。@keyframes规则是创建动画。
-webkit-(chrome/safari), -ms-(ie) 或 -moz-(firefox) 用于兼容不同浏览器。

快速开始第三个动画

  1. <style>
  2. .div1{
  3. width: 100px;
  4. background: red;
  5. animation: second 1s infinite;
  6. color: #fff;
  7. }
  8. @keyframes second{
  9. 100% {
  10. transform: rotate(20deg);
  11. }
  12. }
  13. </style>
  14. <div class="div1">动画</div>

5bcf94577cec22a082f06c05f22e9c5c.gif

transform:rotate使其div元素2D旋转20°.当然你可以设置transform:rotateY, Y 轴的 3D 旋转。

9d42cabfa4296d213499ddfa9e8fe39b.gif

你还可以设置transform: translate,进行2D,3D位移;

367a1ae591f1b88f850eeefe8a8e28b2.gif

transform: scale,进行2D,3D缩放;

a55cb9bd9bc43f3e2f9b0b0ae426bf0f.gif

transform: skew,进行2D倾斜等等。

b3084ec777179f76a1a500d96ad87166.gif

总结

好的动画效果,第一要素是:好的想法,有创意,才有好的成品;第二要素是:有好的实现解题思路,当有设计后,制作就需要想办法实现效果,剥茧抽丝,一步一步来;第三要素:不畏惧的心,勇敢尝试,多实践,多动手,灵感往往来与你写的过程中。

有了上面的小示例,相信小伙伴们也能自己写写简单的CSS3动画了,如果有疑问,可以评论留言,大家一起学习探讨。


作者:向建峰_Javan

链接:http://www.imooc.com/article/287376

来源:慕课网

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/81491
推荐阅读
相关标签
  

闽ICP备14008679号