Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   clearInterval при окончании анимации (https://javascript.ru/forum/misc/13199-clearinterval-pri-okonchanii-animacii.html)

UnderShot 19.11.2010 20:12

clearInterval при окончании анимации
 
Есть код:
<style>
div{width:100px;height:100px;position:absolute;background:#000;}
</style>
<div></div>
<script>
function animate(a){
	var i=0;
	return (function(){
		if(++i<100){
			a.style.left=i+"px";
		}
		else alert("Выполнено");
		setInterval(arguments.callee,10)
	})();
}
animate(document.getElementsByTagName("div")[0])
</script>
После выполнения анимации наступит вечный алерт… Не знаю, где применить clearInterval(), чтобы вовремя остановить повторение функции.

monolithed 19.11.2010 20:24

<style type="text/css">
div {
    background: blue;
    position: absolute;
    width: 100px;
    height: 100px;
}
</style>

<script type="text/javascript">
window.onload = function(){
    var i = 0;
    (function(){
        if(++i <= 200){
           var element =  document.getElementsByTagName('div')[0];
           element.style.left = i+'px';
           setTimeout(arguments.callee, 10);
        }
        else {
            alert('finished');
        }
    })();
};
</script>
<div></div>

UnderShot 19.11.2010 20:30

Да, спасибо :)


Часовой пояс GMT +3, время: 19:27.