script.icio.us 中动画的学习

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
try{document.execCommand("BackgroundImageCache", false, true);}catch(e){}
</script> 
<title>Sortable</title>
<script src="http://api.prototypejs.org/javascripts/pdoc/prototype.js" type="text/javascript" ></script>
<script src="http://script.aculo.us/scriptaculous.js" type="text/javascript" ></script>
</head>
<body>
<style>
</style>

使用delay加入延迟(delay为1)
<div id="ex1"></div>
<div id="moveDiv" style="background-color:red;width:150px;height:20px;">Click To Move</div>
<script>
String.prototype.setCodeStyle = function() {
	return this.toString().replace(/[\r\n]+/g , '<br/>').replace(/\s/g , '&nbsp;');
}
</script>
<script id="s1">
$('moveDiv').observe('click' , function() {
	new Effect.Move('moveDiv' , {
		delay : 1,
		x : 40 , 
		y : 0
	});
});
</script>
<script>
$('ex1').update($('s1').innerHTML.setCodeStyle());
</script>
使用queue选项 <br />
<ul>
	<li>parallel 默认,立即开始</li>
	<li>front 放在队列前面</li>
	<li>end 放在队列后面</li>
	<li>with-last 和队列中最后一个一起开始</li>
</ul>
<div id="ex2"></div>
<div id="moreDiv1" style="background-color:red;width:150px;height:20px;">moreDiv1</div>
<div id="moreDiv2" style="background-color:red;width:150px;height:20px;">moreDiv2</div>
<button id="start1">start</button>
<script id="s2">
$("start1").observe('click' , function() {
	new Effect.Move('moreDiv1' , {
		x : 40 ,
		y : 0
	});
	new Effect.Move('moreDiv1' , {
		x : 0 ,
		y : 40,
		queue : 'end'
	});
	new Effect.Move('moreDiv2' , {
		x : 40 ,
		y : 0,
		queue : 'with-last'
	});
});
</script>
<script>
$('ex2').update($('s2').innerHTML.setCodeStyle());
</script><br />
使用duration控制时间(默认为1,1秒)
<div id="ex3"></div>
<div id="moreDiv3" style="background-color:red;width:150px;height:20px;">Click To Move</div>
<script id="s3">
$('moreDiv3').observe('click' , function() {
	new Effect.Move('moreDiv3' , {
		x : 40,
		y : 0,
		duration : 3
	});
});
</script>
<script>
$('ex3').update($('s3').innerHTML.setCodeStyle());
</script>
fps控制流畅度(默认为100)
<div id="ex4"></div>
<div id="moreDiv4" style="background-color:red;width:150px;height:20px;">moreDiv4</div>
<div id="moreDiv5" style="background-color:red;width:150px;height:20px;">moreDiv5</div>
<button id="start2">start</button>
<script id="s4">
$('start2').observe('click' , function() {
	new Effect.Move('moreDiv4' , {
		x : 40,
		y : 0
	});
	new Effect.Move('moreDiv5' , {
		x : 40,
		y : 0,
		fps : 20
	});
});
</script>
<script>
$('ex4').update($('s4').innerHTML.setCodeStyle());
</script><br />
transition选项
<div id="ex5"></div>
<div id="moreDiv6" style="background-color:red;width:150px;height:20px;">moreDiv6</div>
<div id="moreDiv7" style="background-color:red;width:150px;height:20px;">moreDiv7</div>
<button id="start3">start</button>
<script id="s5">
$("start3").observe('click' , function() {
	new Effect.Move('moreDiv6' , {
		x : 40,
		y : 0,
		transition: Effect.Transitions.sinoidal
	});
	new Effect.Move('moreDiv7' , {
		x : 40,
		y : 0,
		transition: Effect.Transitions.spring
	});
});
</script>
<script>
$('ex5').update($('s5').innerHTML.setCodeStyle());
</script>
<br />
From 和 To
<div id="ex6"></div>
<div id="moreDiv8" style="background-color:red;width:150px;height:20px;">moreDiv8</div>
<div id="moreDiv9" style="background-color:red;width:150px;height:20px;">moreDiv9</div>
<button id="start4">start</button>
<script id="s6">
$("start4").observe('click' , function() {
	new Effect.Opacity('moreDiv8' , {
		from : 1,
		to : 0.5
	});
	new Effect.Opacity('moreDiv9' , {
		from : 1,
		to : 0.2
	});
});
</script>
<script>
$('ex6').update($('s6').innerHTML.setCodeStyle());
</script>
<br />
几个回调函数
<br />
beforeStart与beforeSetup一样,都是还没制定动画之前的操作。
afterSetup是制定了动画,第一帧触发之前做的操作。
beforeUpdate和afterUpdate是每一次更新开始和完成的时候,做的操作。
afterFinish是动画完成之后的操作
<div id="ex7"></div>
<div id="moreDiv10" style="position:relative;background-color:red;width:150px;height:20px;">Click To Move</div>
<script id="s7">
$('moreDiv10').observe('click' , function() {
	new Effect.Move('moreDiv10' , {
		x : 40,
		y : 0,
		beforeStart : function() {
			//console.log(arguments);
			//$('moreDiv10').setStyle({
			//	left : '-10px'
			//});
		},
		beforeSetup : function() {
			//console.log(arguments);
			/*
			$('moreDiv10').setStyle({
				left : '-10px'
			});
			*/
		},
		afterSetup  : function() {
			//console.log(arguments);
			$('moreDiv10').setStyle({
				opacity : '0.5'
			});
		},
		beforeUpdate : function() {
			//console.log(arguments);
			$('moreDiv10').setStyle({
				opacity : '0.2'
			});
		},
		afterUpdate : function() {
			//console.log(arguments);
			$('moreDiv10').setStyle({
				opacity : '0.7'
			});
		},
		afterFinish : function() {
			//console.log(arguments);
		}
	});
});

</script>
<script>
$('ex7').update($('s7').innerHTML.setCodeStyle());
</script>
组队列 需要添加queue<br />
queue : {<br />
	scope : '组队列id',<br />
	position : 'end'<br />
};<br />
<div id="ex8"></div>
<div id="moreDiv11" style="position:relative;background-color:red;width:150px;height:20px;">moreDiv11</div>
<div id="moreDiv12" style="position:relative;background-color:red;width:150px;height:20px;">moreDiv12</div>
<div id="moreDiv13" style="position:relative;background-color:red;width:150px;height:20px;">moreDiv13</div>
<button id="start5">start</button>
<script id="s8">
$("start5").observe('click' , function() {
	var fun = function(item) {
		var options = {
			scope : item.id,
			position : 'end'
		};
		new Effect.Opacity(item , {
			to : '0.1',
			duration : 2,
			queue : options
		});
		new Effect.Move(item , {
			x : 50,
			queue : options,
			duration : 2
		});
	};
	fun($('moreDiv11'));
	fun($('moreDiv12'));
	fun($('moreDiv13'));
});
</script>
<script>
$('ex8').update($('s8').innerHTML.setCodeStyle());
</script>
</body>
</html>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值