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 学习笔记(八)javascript对象
Apr 12 Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
基于Jquery实现表单验证
Jul 20 Javascript
深入探讨前端框架react
Dec 09 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
jquery实现数字输入框
Feb 22 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
简单实用的反馈表单无刷新提交带验证
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
农民和部队如何穿矿
2020/03/04 星际争霸
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
Django中Model的使用方法教程
2018/03/07 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
python中二分查找法的实现方法
2020/12/06 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
学习全国两会精神心得体会范文
2014/03/17 职场文书
社区平安建设方案
2014/05/25 职场文书
电子工程求职信
2014/07/17 职场文书
施工安全责任书范本
2014/07/24 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
医德医风自我评价
2014/09/19 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
英文商务邀请函范文
2015/01/31 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书