blasheevich
@blasheevich

Что не так с setTimeout?

<div id="menu1" onmouseover="changeDiv()" onmouseout="defaultDiv()">
	 
	 <script>
function changeDiv(){
  document.getElementById("diz") .style.display="block"; 
 }  
setTimeout(changeDiv, 1000);

   
function defaultDiv(){
  document.getElementById("diz").style.display="none";
}

setTimeout(defaultDiv, 1000);

</script>

-???
  • Вопрос задан
  • 2515 просмотров
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Вот здесь бы как раз пригодился вариант жалобы на вопрос с характеристикой автора :)

upd: что должен согласно Вашим представлениям делать этот код?

upd2: (вангую) предполагается, что сначала запустится один таймаут, который покажет блок, как только он отработает - второй таймаут. Но на деле они запускаются практически одновременно. Если я прав в своей предположении, и Вы хотите показывать блок на 1 секунду, то поставьте для второго таймаута задержку 2000 мс.

upd3:
codepen.io/iiil/pen/ztHDq
Вот что Вы хотите, наверное.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
KEKSOV
@KEKSOV
Возможно, Вам нужно делать как-то так
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Давайте попробуем угадать. Первое что приходит в голову, это то что на указанное в setTimeout значение времени нельзя положиться. Например минимальное значение, оно может быть разным в разных браузерах, разных системах, и вообще зависеть от вспышек на солнце. В этом вам поможет эта статья: alljs.ru/articles/timeout/fast-settimeout, или даже вот еще лучше: reallifejs.com/brainchunks/repeated-events-timeout...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы