2016-08-30 6 views
0

Я хочу сделать индикатор выполнения, который «рушится» по завершении.
К краху, я имею в виду неоднократно уменьшать высоту на 1.
elem.style.height не запускается внутри цикла while

Но когда индикатор выполнения «сделан» (достигает ширины 100), больше ничего не происходит.

Это мой код:

   function frame() { 
        var elem = document.getElementById("myBar"); 
        var height = 30; 
        if (width >= 100) { 
         while (elem.style.height != 0) { 
          elem.style.height = height + '%'; 
          height--; 
         } 
         clearInterval(id); 
        } else { 
         width++; 
         elem.style.width = width + '%'; 
        } 
       } 

Где ошибка?

Извините, если мой вопрос глупый или дубликат; Я искал форум, но не нашел дублирующее сообщение.

Заранее спасибо

ответ

0

Как вы сделали это

elem.style.height = height + '%'; 

Следующие никогда не будет ложным:

while (elem.style.height != 0) 

Becase это неверно:

"0%"==0 // false 

И Я думаю, там что-то не так с петлей. Если вы хотите уменьшить высоту один за другим, лучше вызвать setInterval, так как цикл изменит высоту на 0 менее чем на 1 мс, что не имеет значения с прямой установкой высоты на 0.

+0

спасибо. Вместо этого будет использовать setInterval. –