Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поочерёдное появление DIV

Сообщения:  [1-10]   [11-12] 

 
 автор: bronenos   (27.10.2007 в 00:39)   письмо автору
 
   для: вялый   (26.10.2007 в 20:22)
 

но если занести таймауты в переменные и при одной ф-ии останавливать таймаут другой (clearTimeout), то проблем не будет

   
 
 автор: вялый   (26.10.2007 в 20:22)   письмо автору
 
   для: bronenos   (25.10.2007 в 18:40)
 

>ну тогда он сможет скрывать с той позиции, на которой открытие остановилось (вместо y юзайте x)

Кстати, забыл сказать. По моему, насколько я понимаю, через setTimeout это реализовать нельзя. Этот метод задаёт: "через стока то милисекунд выполнить такой то код", т.е. получается, что одновременно будут работать сразу 2 функции, т.е. не получиться реализации "скрывать с той позиции, на которой открытие остановилось". Короче, объяснил как смог

Поэтому, Onebythinkart , можете продолжать юзать Y во избежание конфликтов.

   
 
 автор: вялый   (26.10.2007 в 01:05)   письмо автору
 
   для: Onebythinkart   (25.10.2007 в 22:08)
 

x=1;  
  function f()  
      {if(x<5)  
          {document.getElementById("div"+x).style.visibility="visible";  
          x++;  
          setTimeout("f()",50);  
          }
     else x=4;  
     }  
  function f_r()  
      {if(x>0)  
          {document.getElementById("div"+x).style.visibility="hidden";  
          x--;  
          setTimeout("f_r()",100);  
          }  
       else x=1;    
     }

   
 
 автор: bronenos   (25.10.2007 в 22:52)   письмо автору
 
   для: Onebythinkart   (25.10.2007 в 22:08)
 

x=x-1; можно x--;

   
 
 автор: Onebythinkart   (25.10.2007 в 22:08)   письмо автору
 
   для: bronenos   (25.10.2007 в 18:40)
 

Вот попробывал так, но не работает onMouseOut(((

<style> 
 .div_vis{ width:150px; visibility:hidden} 
</style> 
<script> 
x=1; 
  function f() 
      {if(x<5) 
          {document.getElementById("div"+x).style.visibility="visible"; 
          x++; 
          setTimeout("f()",50); 
          } 
     } 
  function f_r() 
      {if(x>1) 
          {document.getElementById("div"+x).style.visibility="hidden"; 
          x=x-1; 
          setTimeout("f_r()",100); 
          } 
          
     } 
</script> 

<div ><div onMouseOver="f()" onMouseOut="f_r()">  
Заголовок</div>  
<div id="div1" class="div_vis">при наведении 1</div>  
<div id="div2" class="div_vis">при наведении 2</div>  
<div id="div3" class="div_vis">при наведении 3</div>  
<div id="div4" class="div_vis">при наведении 4</div>  
</div>

   
 
 автор: bronenos   (25.10.2007 в 18:40)   письмо автору
 
   для: Onebythinkart   (25.10.2007 в 15:51)
 

ну тогда он сможет скрывать с той позиции, на которой открытие остановилось (вместо y юзайте x)

   
 
 автор: Onebythinkart   (25.10.2007 в 15:51)   письмо автору
 
   для: bronenos   (25.10.2007 в 15:28)
 

хм, с трудом соображаю, могли бы вы написать пример

   
 
 автор: bronenos   (25.10.2007 в 15:28)   письмо автору
 
   для: Onebythinkart   (25.10.2007 в 15:10)
 

ой, я нипральна понял... извтиняюсь, мой код не бурите =)
п.с. во второй ф-ии будеи удобно использовать в кач-ве итреатора все ту же переменную x

   
 
 автор: Onebythinkart   (25.10.2007 в 15:10)   письмо автору
 
   для: bronenos   (25.10.2007 в 14:14)
 

первый предложенный вариант подошёл, я его немного видоизменил, чтобы когда мышка отъезжала, все скрывалось с том же духе.
только список открывается и скрывается только один раз, потом надо жать обновить.
вот код:

<style> 
 .div_vis{visibility:hidden} 
</style> 
<script> 
x=1; 
  function f() 
      {if(x<5) 
          {document.getElementById("div"+x).style.visibility="visible"; 
          x++; 
          setTimeout("f()",600); 
          } 
     } 
     
y=4;
  function f_r() 
      {if(y>0) 
          {document.getElementById("div"+y).style.visibility="hidden"; 
          y=y-1; 
          setTimeout("f_r()",100); 
          } 
     } 
</script> 

<div ><div onMouseOver="f()" onMouseOut="f_r()">  
Заголовок</div>  
<div id="div1" class="div_vis">при наведении 1</div>  
<div id="div2" class="div_vis">при наведении 2</div>  
<div id="div3" class="div_vis">при наведении 3</div>  
<div id="div4" class="div_vis">при наведении 4</div>  
</div>


и ещё, если отвести мышку раньше, чем появится весь список. то появляются казусы разного характера, типа что вывелось раньше скрывается, а что не успело, продолжает появляется

   
 
 автор: bronenos   (25.10.2007 в 14:14)   письмо автору
 
   для: вялый   (25.10.2007 в 13:02)
 

<style type="text/css"> 
.div_vis { 
  display: none; 

</style> 

<script type="text/javascript">
var last;
function f(x) 

  if (last) last.style.display = "none"; 
  last = document.getElementById("div" + x);
  last.style.display = "block";
  if (++x == 5) x = 1; 
  setTimeout("f("+x+");", 500); 

</script> 

<div> 
<div id="div0" onMouseOver="f(0)">Заголовок</div>   
<div id="div1" class="div_vis">при наведении 1</div>   
<div id="div2" class="div_vis">при наведении 2</div>   
<div id="div3" class="div_vis">при наведении 3</div>   
<div id="div4" class="div_vis">при наведении 4</div>   
</div>

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования