Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выполнение после таймера (https://javascript.ru/forum/dom-window/43132-vypolnenie-posle-tajjmera.html)

hoax 23.11.2013 19:14

Выполнение после таймера
 
Сразу показываю код. Необходимо чтобы после того как блок исчезал (opacity), он получал display:none, однако указание после таймера не влияет на это, и блок исчезает одновременно с изменением прозрачности (или даже раньше ее).

Чтобы увидеть достаточно посмотреть на события без строки --- el.style.display='none';
и с --- el.style.display='none';

<html>
<head>
<style>
*{margin:0px;padding:0px;}


#ok {border:1px solid;width:30px;
}
.bottom {background:#b3b3b3;}

</style>
</head>
<body>

<div id="ok">все</div>

<div id="matrix">
  <script>for (var i = 0; i < 9000; i++) document.writeln(i)</script>
</div>


 <script>



 
 function animate(el) {
 

 var left= 1;
 var timer = setInterval(function() {
left-=0.1
 el.style.opacity = left;
 
 
 if(left > 1) clearInterval(timer)


 
  },60)

el.style.display='none'; // -------------  тут проблема

}



var div = document.getElementById('ok');
div.onclick=function() {
animate(this);
}



	
 </script>

</body>
</html>

ksa 23.11.2013 19:33

Цитата:

Сообщение от hoax
однако указание после таймера не влияет на это

Разумеется. :)

Вывод - укажи таки это в нутри таймера. Тогда, когда это нужно. ;)

hoax 23.11.2013 20:50

тоже самое будет

hoax 24.11.2013 00:30

код выше кривоват)
но в целом проблему решил.

ksa 24.11.2013 10:23

Цитата:

Сообщение от hoax
тоже самое будет

Да ты че! :D


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