Animation 은 일정한 시간 간격으로 객체의 속성 등을 서서히 변화시키는 일이다.
일정한 시간 간격으로 원하는 작업을 하기 위해 setTimeout 함수를 이용한다.
setTimeout(function, delay);
예) 1초 마다 i 변수에 1을 더하고 표시한다.
<div id="value"></div>
<script type="text/javascript">
var i = 0;
var func = function() {
i++;
document.getElementById("value");
setTimeout(func, 1000);
}
setTimeout(func, 1000);
</script>
Animation 객체
<script type="text/javascript">
function myanim(actionFunc, interval) {
this.timer;
this.interval = (interval != null) ? interval : 1000;
this.actionFunc = actionFunc;
}
myanim.prototype.start = function() {
this.stop();
var me = this;
if (this.actionFunc) {
this.loop = function() {me.actionFunc();setTimeout(me.loop, me.interval);}
this.loop();
}
}
myanim.prototype.stop = function() {
if (this.timer) clearTimeout(this.timer);
}
</script>
Animation 객체 사용하기
<div id="value2"></div>
<script type="text/javascript">
var j = 0;
var anim = new myanim(function(){j++;document.getElementById("value2").innerHTML=j;}, 1000);
</script>
Element 이동
div 객체의 위치 속성 값을 바꾼다.
1. div 준비
<div id="box1" style="position:absolute;width:100px;height:100px;border:solid 1px black"></div>
2. animation
<script type="text/javascript">
var x = 0;
var anim = new myanim(function(){
x=(x+1)%100;
document.getElementById("box1").style.left=x + "px";
}, 50);
</script>
댓글 없음:
댓글 쓰기