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高级程序设计(第3版)学习笔记3 js简单数据类型
Oct 11 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
js实现模糊匹配功能
Feb 15 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 Javascript
vue 检测用户上传图片宽高的方法
Feb 06 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 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
flexigrid 参数说明
2010/11/23 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
python3 xpath和requests应用详解
2020/03/06 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
酒店辞职书范文
2015/02/26 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript