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


Posted in Javascript onNovember 15, 2013
<!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> 

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

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

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

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

Javascript 相关文章推荐
js原型链原理看图说明
Jul 07 Javascript
jQuery登陆判断简单实现代码
Apr 21 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
node.js中的fs.link方法使用说明
Dec 15 Javascript
Javascript的表单验证长度
Mar 16 Javascript
Bootstrap 附加导航(Affix)插件实例详解
Jun 01 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
Node.js API详解之 dns模块用法实例分析
May 15 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 #Javascript
JS读取XML文件示例代码
Nov 15 #Javascript
JS正则表达式获取分组内容的方法详解
Nov 15 #Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 #Javascript
jQuery Form 页面表单提交的小例子
Nov 15 #Javascript
js简单实现用户注册信息的校验代码
Nov 15 #Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 #Javascript
You might like
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP常用的小程序代码段
2015/11/14 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
小学生期末评语大全
2014/04/21 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
2014年学生会工作总结
2014/11/07 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
2016年万圣节活动总结
2016/04/05 职场文书