js螺旋動(dòng)畫(huà)效果的具體實(shí)例
更新時(shí)間:2013年11月15日 16:33:38 作者:
這篇文章主要介紹了js螺旋動(dòng)畫(huà)效果的具體實(shí)例,有需要的朋友可以參考一下
復(fù)制代碼 代碼如下:
<!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;//圈數(shù)
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;//旋轉(zhuǎn)圈數(shù)
var duration = 2000;//子動(dòng)畫(huà)耗時(shí)
var decrease_time = 100;//每次子動(dòng)畫(huà)耗時(shí)減少量
var frame = 1000;//子動(dòng)畫(huà)幀數(shù)
var count = 2;//子動(dòng)畫(huà)執(zhí)行次數(shù)
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>




您可能感興趣的文章:
- 緩動(dòng)函數(shù)requestAnimationFrame 更好的實(shí)現(xiàn)瀏覽器經(jīng)動(dòng)畫(huà)
- window.requestAnimationFrame是什么意思,怎么用
- 圖片動(dòng)畫(huà)橫條廣告帶上下滾動(dòng)的JS代碼
- js動(dòng)畫(huà)效果制件讓圖片組成動(dòng)畫(huà)代碼分享
- js、jquery圖片動(dòng)畫(huà)、動(dòng)態(tài)切換示例代碼
- JS 實(shí)現(xiàn)列表與多選框選擇附預(yù)覽動(dòng)畫(huà)
- JS實(shí)現(xiàn)超炫網(wǎng)頁(yè)煙花動(dòng)畫(huà)效果的方法
- js實(shí)現(xiàn)橫向百葉窗效果網(wǎng)頁(yè)切換動(dòng)畫(huà)效果的方法
- 使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫(huà)性能好
相關(guān)文章
使用JavaScript檢測(cè)Firefox瀏覽器是否啟用了Firebug的代碼
在啟用Firebug的情況下訪(fǎng)問(wèn)GMail會(huì)收到一個(gè) Firebug會(huì)讓Gmail變慢 的警告,這是如何檢測(cè)的呢?這里就說(shuō)說(shuō)。2010-12-12
關(guān)于實(shí)現(xiàn)代碼語(yǔ)法標(biāo)亮 dp.SyntaxHighlighter
關(guān)于實(shí)現(xiàn)代碼語(yǔ)法標(biāo)亮 dp.SyntaxHighlighter...2007-02-02
JavaScript切換搜索引擎的導(dǎo)航網(wǎng)頁(yè)搜索框?qū)嵗a
這篇文章主要介紹了javascript切換搜索引擎的導(dǎo)航網(wǎng)頁(yè)搜索框的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值 ,需要的朋友可以參考下2017-06-06
一文搞懂JSON(JavaScript Object Notation)
Json 有兩種基本的結(jié)構(gòu),即 Json對(duì)象 和 Json 數(shù)組。通過(guò) Json 對(duì)象和 Json 數(shù)組這兩種結(jié)構(gòu)的組合可以表示各種復(fù)雜的結(jié)構(gòu),今天通過(guò)本文給大家介紹JavaScript Object Notation的基本知識(shí),感興趣的朋友一起看看吧2021-10-10
JavaScript 保存數(shù)組到Cookie的代碼
大部分的瀏覽器一個(gè)網(wǎng)站只支持保存20個(gè)Cookie,超過(guò)20個(gè)Cookie,舊的Cookie會(huì)被最新的Cookie代替。那么如果要有超過(guò)20個(gè)Cookie要保存只能將Cookie存為數(shù)組然后保存到Cookie。2010-04-04
JavaScript表單驗(yàn)證實(shí)例之驗(yàn)證表單項(xiàng)是否為空
表單驗(yàn)證幾乎在每個(gè)需要注冊(cè)或者是登錄的網(wǎng)站都是必不可少,下面通過(guò)本篇文章給大家介紹JavaScript表單驗(yàn)證實(shí)例之驗(yàn)證表單項(xiàng)是否為空,涉及到j(luò)s表單驗(yàn)證實(shí)例相關(guān)知識(shí),對(duì)js表單驗(yàn)證實(shí)例代碼需要的朋友一起學(xué)習(xí)吧2016-01-01
javascript的parseFloat()方法精度問(wèn)題探討
javascript中的parseFloat()方法,大家應(yīng)該不陌生吧,下面為大家介紹下其精度問(wèn)題,感興趣的朋友不要錯(cuò)過(guò)2013-11-11

