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 相关文章推荐
学习ExtJS Column布局
Oct 08 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
May 22 Javascript
JavaScript 原型继承
Dec 26 Javascript
基于jQuery.Validate验证库知识点的详解
Apr 26 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
微信小程序之数据双向绑定与数据操作
May 12 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
May 24 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 Javascript
vue瀑布流组件实现上拉加载更多
Mar 10 Javascript
一文彻底理解js原生语法prototype,__proto__和constructor
Oct 24 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过滤危险html代码的函数
2008/07/22 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
javascript 对象的定义方法
2007/01/10 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python的装饰器使用详解
2017/06/26 Python
使用Scrapy爬取动态数据
2018/10/21 Python
python对视频画框标记后保存的方法
2018/12/07 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
python的pstuil模块使用方法总结
2019/07/26 Python
pytorch数据预处理错误的解决
2020/02/20 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
"序列点" 是什么
2016/07/29 面试题
城建学院毕业生自荐信
2014/01/31 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
MySQL慢查询的坑
2021/04/28 MySQL
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS