Не корректно работает clearInterval(js)
Вот упрощённый вариант моего кода:
1)function sizeJPG(image) {
2)var timer = function(){
3)var w = image.width;
4)image.style.width = w + 20 + "px";
5)if(image.style.width = "600px"){
6)clearInterval(timer);
7)};
8)};
9)setInterval(timer, 50);
10)};
Функция используется картинкой в HTML документе. По идее ширина картинки, заранее установленная в CSS на 300px, должна плавно увеличиться до 600px, но, почему-то, вместо того, чтобы задавать условие в 5 строке, оно становится значением (то есть, функция мгновенно изменяет ширину с 300 до 600, а только затем уже бесконечно плюсует по 20 пикселей).
Подскажите новичку, в чём проблема?
Извините, не знал, что табуляция тут не принимается. P.S.
function sizeJPG(image) {
var timer = function(){
var w = image.width;
image.style.width = w + 20 + "px";
if(image.style.width = "600px"){
clearInterval(timer);
};
console.log(image.style.width);
};
setInterval(timer, 50);
};
Некорректно используется clearInterval. Как параметр он принимает только идентификатор запущенного setInterval (этот setInterval при запуске возвращает идентификатор), но никак не функцию
image.style.width = "600px" - функция мгновенно изменяет ширину с 300 до 600
надо было бы писать timer=setinterval(sfdsdfa...,12100)
в условии ошибка. Пропущен знак равенства: if (image.style.width== и . д.
Говнокод)) нафига засовывать переменную функцию не проще ли назвать её и вызывать вместо таймера? if (1 == 2 а не 1 = 2)
var timer1 = setTimeout(func1, 2000);
clearTimeout(timer1);