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 获取和设置css3 属性值的实现方法
May 06 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
javascript中this的四种用法
May 11 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
Dec 21 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 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
上海无线电三厂简史修改版
2021/03/01 无线电
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
在校生党员自我评价
2013/09/25 职场文书
应届生护士求职信
2013/11/01 职场文书
技术总监管理职责范本
2014/03/06 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
班级出游活动计划书
2014/08/15 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
市场总监岗位职责
2015/02/11 职场文书
小学科学课教学反思
2016/02/23 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
element tree树形组件回显数据问题解决
2022/08/14 Javascript