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如何自定义trim方法
Jul 28 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
JS中常用的正则表达式
Sep 29 Javascript
jquery文字填写自动高度的实现方法
Nov 07 Javascript
微信小程序中form 表单提交和取值实例详解
Apr 20 Javascript
Vue shopCart 组件开发详解
Jan 26 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
Vue循环组件加validate多表单验证的实例
Sep 18 Javascript
Vue父子组件传值的一些坑
Sep 16 Javascript
JavaScript async/await原理及实例解析
Dec 02 Javascript
ES2020让代码更优美的运算符 (?.) (??)
Jan 04 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生成Flash动画的实现代码
2010/03/12 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
删除重复数据的算法
2006/11/23 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
pygame实现简易飞机大战
2018/09/11 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
印度民族服装购物网站:BIBA
2019/08/05 全球购物
《兰亭集序》教学反思
2014/02/11 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
js Proxy的原理详解
2021/05/25 Javascript
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA