Почему не работает этот код (анимация на javascript)?

Есть код:
Код
var div = document.querySelector('.test');

	function show(elem, t) {
        elem.style.display = "block";
        elem.style.opacity = 0;
        var fadeEffect = setInterval(function () {
            if (elem.style.opacity > 1) {
                clearInterval(fadeEffect);
            }

            elem.style.opacity += 0.02; //0.02
        }, t)
    }

    div.onclick = function () {
        show(this, 19);
    }
Ссылка на jsfiddle.
Не могу понять никак. Хочу сделать так, чтобы при клике элемент получал опасити 0, и постепенно возвращался до состояния опасити 1, то есть типа анимации чтоб было. Вроде все стили проставил в функции, но срабатывает только часть, которая дает опасити 0.02, а сетИнтервал крутится бесконечно.
В чем здесь проблема?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
elem.style.opacity += 0.02;

Тип значения - строка. Поэтому += тут делать нельзя. Можно так:

elem.style.opacity = (+elem.style.opacity + 0.02).toFixed(2);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы