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 相关文章推荐
document 和 document.all 分别什么时候用
Jun 22 Javascript
jQuery 入门讲解1
Apr 15 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
Jul 26 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
jquery实现键盘左右翻页特效
Apr 30 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
javascript每日必学之多态
Feb 23 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
@angular前端项目代码优化之构建Api Tree的方法
Dec 24 Javascript
小程序红包雨的实现示例
Feb 19 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 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使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
一端时间轮换的广告
2006/06/26 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python读取oracle函数返回值
2016/07/18 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
Python的几种主动结束程序方式
2019/11/22 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
技校生自我鉴定范文
2013/09/26 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
心理健康教育制度
2014/01/27 职场文书
初中生期末评语大全
2014/04/24 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书