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 相关文章推荐
JQuery与iframe交互实现代码
Dec 24 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
javascript每日必学之多态
Feb 23 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
在 Node.js 中使用原生 ES 模块方法解析
Sep 19 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 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
十大“创意”战术!
2020/03/04 星际争霸
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
python中正则表达式的使用详解
2014/10/17 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
python绘制规则网络图形实例
2019/12/09 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
委托书格式
2014/08/01 职场文书
react 路由Link配置详解
2021/11/11 Javascript
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
Python实现双向链表基本操作
2022/05/25 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript