今天就写一个css3抛物线的动画吧= =
从左到右的抛物线动画,我们就暂且把动作分为匀速向右运动和变速的上下运动。
水平匀速运动我们可以利用 translateX(x):定义 2D 转换,沿着 X 轴移动元素;以及linear:动画从头到尾的速度是相同的 这两个属性值来实现;
上下的匀变速运动可以利用translateY(y):定义 2D 转换,沿着 Y 轴移动元素;以及ease-in-out:动画以低速开始和结束。
1.html
1 <div id="container"> 2 <div class="demobox"> 3 <div class="demo"></div> 4 </div> 5 <div class="demobox"> 6 <div class="demo"></div> 7 </div> 8 </div>
把demobox的div做向右的匀速的运动,里面demo的div做上下的变速的运动。
2.css
1 #container { 2 height:110px; 3 font-size:0; 4 width:140px; 5 } 6 .demobox { 7 float:right; 8 width:5px; 9 height:5px; 10 animation:myfirst1 linear 5s infinite; 11 -webkit-animation:myfirst1 linear 5s infinite; 12 } 13 .demo { 14 width:6px; 15 height:6px; 16 border-radius:3px; 17 background:#90e4e9; 18 animation:myfirst2 ease-in-out 1s infinite alternate; 19 -webkit-animation:myfirst2 ease-in-out 1s infinite alternate; /*Safari and Chrome */ 20 } 21 22 .demobox:nth-of-type(1) .demo:nth-of-type(1){ 23 animation-delay:0s; 24 } 25 .demobox:nth-of-type(2) .demo:nth-of-type(1){ 26 animation-delay:0.03s; 27 } 28 29 @keyframes myfirst1 30 { 31 from { 32 transform:translateX(0px); 33 -webkit-transform:translateX(0px); 34 } 35 to { 36 transform:translateX(1000px); 37 -webkit-transform:translateX(1000px); 38 } 39 40 } 41 42 @-webkit-keyframes myfirst1 /* Safari and Chrome */ 43 { 44 from { 45 transform:translateX(0px); 46 -webkit-transform:translateX(0px); 47 } 48 to { 49 transform:translateX(1000px); 50 -webkit-transform:translateX(1000px); 51 } 52 } 53 @keyframes myfirst2 54 { 55 0% { 56 transform:translateY(0px); 57 -webkit-transform:translateY(0px); 58 } 59 50% { 60 transform:translateY(100px); 61 -webkit-transform:translateY(100px); 62 } 63 100% { 64 transform:translateY(0px); 65 -webkit-transform:translateY(0px); 66 } 67 } 68 69 @-webkit-keyframes myfirst2 /* Safari and Chrome */ 70 { 71 0% { 72 transform:translateY(0px); 73 -webkit-transform:translateY(0px); 74 } 75 50% { 76 transform:translateY(100px); 77 -webkit-transform:translateY(100px); 78 } 79 100% { 80 transform:translateY(0px); 81 -webkit-transform:translateY(0px); 82 } 83 }
ok,一个正余弦曲线出来啦 @^-^@