使用css来实现:
span { display: block; width: 150px; height: 200px; background-color: red; line-height: 200px; font-size: 24px; overflow: hidden; text-align: center; position: fixed; right: -75px; bottom: 500px; transform: rotate(-30deg); animation: bagAnimation 3s linear infinite ; } @keyframes bagAnimation { 0% { transform: rotate(-30deg); } 30% { transform: rotate(-30deg); } 40% { transform: rotate(0deg); } 50% { transform: translateX(-200px); } 55% { transform: translateX(-200px) rotate(-15deg); } 60% { transform: translateX(-200px) rotate(15deg); } 65% { transform: translateX(-200px) rotate(-15deg); } 70% { transform: translateX(-200px) rotate(15deg); } 75% { transform: translateX(-200px) rotate(0deg); } 85% { transform: translateX(0); } 100% { transform: translateX(0) rotate(-30deg); } }
|
使用js来实现
因为是生成dom,对dom的反复操作,并且是使用定时器来完成,所以不推荐
var a=-30; var b=15; var c=-15; var d=0; var sun=0; var lDis=-50; var rDis=100; var cont=0 var timer=null setInterval(function () { timer=setInterval(function () { if(a<0){ $('span').css('transform','rotate('+a+'deg)'); a++; } if(a==0&&lDis<100){ $('span').css('right',lDis+'px'); lDis+=2; if(lDis==100){ rDis=100; } } if(lDis==100&&a>=0&&a<15){ a++; if(a==15){ b=15; } $('span').css('transform','rotate('+a+'deg)'); } if(lDis==100&&a==15&&b>-15){ b-- if(b==-15){ c=-15 } $('span').css('transform','rotate('+b+'deg)'); } if(lDis==100&&b==-15&&c<0){ c++ if(c==0) { a = 0; sun++ if(sun>3){ sun=3; } } $('span').css('transform','rotate('+c+'deg)'); } if(sun==3&&rDis>-50){ a=0; rDis-=2; b=15; c=-15; d=0; $('span').css('right',rDis+'px'); } if(rDis==-50&&d>-30){ d--; $('span').css('transform','rotate('+d+'deg)'); if(d==-30){ lDis=-50; sun=0; a=-30 clearInterval(timer) } } },10) },5000)
|