源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js螺旋动画效果的具体实例

  • 时间:2021-08-02 12:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js螺旋动画效果的具体实例
[u]复制代码[/u] 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">  <title>Spiral</title>  <script type="text/javascript" src="js/jquery-1.5.js"></script>  </head>  <body>  <script type="text/javascript">  var Spiral;  var yjq;  (function(){      yjq = function(name,turns,duration,frame,count,decrease_time){          $('style.enable_remove').remove();          $('[id^=test]').css({'position':'absolute','width':10,'height':10,'top':300,'left':300,'background':'black'});          Spiral(name+'1',600,300,300,300,turns,duration,frame);          Spiral(name+'2',300,0,300,300,turns,duration,frame);          Spiral(name+'3',0,300,300,300,turns,duration,frame);          Spiral(name+'4',300,600,300,300,turns,duration,frame);          $('#'+name+'1').css({"-webkit-animation":name+"1 "+duration+"ms linear "+count});          $('#'+name+'2').css({"-webkit-animation":name+"2 "+duration+"ms linear "+count});          $('#'+name+'3').css({"-webkit-animation":name+"3 "+duration+"ms linear "+count});          $('#'+name+'4').css({"-webkit-animation":name+"4 "+duration+"ms linear "+count});          var arg = arguments;          $("#"+name+"4").one('webkitAnimationEnd',function(){              if(duration<=0){                  return;              }              arg.callee(name,turns,duration-=decrease_time,frame,count,decrease_time);          });      }      Spiral = function(name,w1,h1,w2,h2,N,T,frame){          var interval = T/frame;//每帧间隔          var n;//圈数          var i = 0;          var k;//初始象限          var R = Math.sqrt(Math.pow(w2-w1,2)+Math.pow(h2-h1,2),2);//半径          var style="@-webkit-keyframes "+name+"{";          var styleDom=$("<style class='enable_remove'></style>");          if(w1>w2 && h1<=h2){              k = 1;          }else if(w1<=w2 && h1<h2){              k = 2;          }else if(w1<w2 && h1>=h2){              k = 3;          }else {              k = 4;          }          for(var t=0;t<T;t+=interval){              var t1 = t%(T/N);              n = Math.floor(t/(T/N));              x = h2-R*(1-t1/T-n/N)*Math.cos(2*Math.PI*t1*N/T+Math.pow(-1,k)*Math.atan(Math.abs(w2-w1)/Math.abs(h2-h1))+(k>2?1:0)*(k%2?-1:1)*Math.PI);              y = w2-R*(1-t1/T-n/N)*Math.sin(2*Math.PI*t1*N/T+Math.pow(-1,k)*Math.atan(Math.abs(w2-w1)/Math.abs(h2-h1))+(k>2?1:0)*(k%2?-1:1)*Math.PI);              style+=(i++)*100/frame+'%{top:'+x+'px;left:'+y+'px;} ';          }          style+='100%{top:'+w2+'px;left:'+h2+'px;}}';          styleDom.html(style);          $("head").append(styleDom);      };  })();  $(function(){      var name = 'test';      var turns = 5;//旋转圈数      var duration = 2000;//子动画耗时      var decrease_time = 100;//每次子动画耗时减少量      var frame = 1000;//子动画帧数      var count = 2;//子动画执行次数      yjq(name,turns,duration,frame,count,decrease_time);  });  </script>  <div id="test1"></div>  <div id="test2"></div>  <div id="test3"></div>  <div id="test4"></div>  </body>  </html> 
[img]http://files.jb51.net/file_images/article/201311/20131115163117498.jpg[/img] [img]http://files.jb51.net/file_images/article/201311/20131115163234295.jpg[/img] [img]http://files.jb51.net/file_images/article/201311/20131115163334930.jpg[/img] [img]http://files.jb51.net/file_images/article/201311/20131115163408787.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部