-
UID:454667
-
- 注册时间2011-03-06
- 最后登录2018-01-17
- 在线时间5677小时
-
- 发帖6808
- 搜Ta的帖子
- 精华0
- 黑豆158
- 威望24650
- 贡献值0
- 交易币0
- 红豆426
-
访问TA的空间加好友用道具
- 发帖
- 6808
- 黑豆
- 158
- 威望
- 24650
- 贡献值
- 0
- 交易币
- 0
- 红豆
- 426
|
- <!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>
|