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 相关文章推荐
javascript iframe内的函数调用实现方法
Jul 19 Javascript
javascript setTimeout和setInterval 的区别
Dec 08 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
充分发挥Node.js程序性能的一些方法介绍
Jun 23 Javascript
微信小程序入门教程
Nov 18 Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 Javascript
js匿名函数使用&amp;传参(实例)
Sep 08 Javascript
如何使用JavaScript实现栈与队列
Jun 24 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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简单命令代码集锦
2007/09/24 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
node.js require() 源码解读
2015/12/13 Javascript
深入理解vue中的$set
2017/06/01 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
python3实现多线程聊天室
2018/12/12 Python
学生手册家长评语
2014/02/10 职场文书
2014年统计工作总结
2014/11/21 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL