Рассмотрим следующий блок кода
var interval = setTimeout(function()
{
var left = parseInt(self.element.style.left) - 10;
var width = parseInt(self.element.style.width) + 10;
if(width <= self.width)
{
self.element.style.left = left + "px";
self.element.style.width = width + "px";
setTimeout(increaseWidthLeft(self), 10);
}
else
{
window.clearInterval(interval);
}
}, 5);
И этот:
var interval = setTimeout(function()
{
var left = parseInt(self.element.style.left) - 10;
var width = parseInt(self.element.style.width) + 10;
if(width <= self.width)
{
self.element.style.left = left + "px";
self.element.style.width = width + "px";
setTimeout(function(){increaseWidthLeft(self);}, 10);
}
else
{
window.clearInterval(interval);
}
}, 5);
Они почти одинаковые да? Но когда я запускаю первую версию, "анимация" работает с ошеломляющей скоростью... однако вторая работает почти в 3 раза медленнее первой. Что здесь происходит? Любая помощь очень ценится
Timeout
и очищаетеInterval
. Вы должны использоватьclearTimeout()
.clearInterval()
иclearTimeout()
не взаимозаменяемы. Дополнительные сведения см. в этом ответе. - person War10ck   schedule 16.12.2013