|
|
|
|
|
для: вялый
(26.10.2007 в 20:22)
| | но если занести таймауты в переменные и при одной ф-ии останавливать таймаут другой (clearTimeout), то проблем не будет | |
|
|
|
|
|
|
|
для: bronenos
(25.10.2007 в 18:40)
| | >ну тогда он сможет скрывать с той позиции, на которой открытие остановилось (вместо y юзайте x)
Кстати, забыл сказать. По моему, насколько я понимаю, через setTimeout это реализовать нельзя. Этот метод задаёт: "через стока то милисекунд выполнить такой то код", т.е. получается, что одновременно будут работать сразу 2 функции, т.е. не получиться реализации "скрывать с той позиции, на которой открытие остановилось". Короче, объяснил как смог
Поэтому, Onebythinkart , можете продолжать юзать Y во избежание конфликтов. | |
|
|
|
|
|
|
|
для: 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;
}
|
| |
|
|
|
|
|
|
|
для: Onebythinkart
(25.10.2007 в 22:08)
| | x=x-1; можно x--; | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Onebythinkart
(25.10.2007 в 15:51)
| | ну тогда он сможет скрывать с той позиции, на которой открытие остановилось (вместо y юзайте x) | |
|
|
|
|
|
|
|
для: bronenos
(25.10.2007 в 15:28)
| | хм, с трудом соображаю, могли бы вы написать пример | |
|
|
|
|
|
|
|
для: Onebythinkart
(25.10.2007 в 15:10)
| | ой, я нипральна понял... извтиняюсь, мой код не бурите =)
п.с. во второй ф-ии будеи удобно использовать в кач-ве итреатора все ту же переменную x | |
|
|
|
|
|
|
|
для: 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>
|
и ещё, если отвести мышку раньше, чем появится весь список. то появляются казусы разного характера, типа что вывелось раньше скрывается, а что не успело, продолжает появляется | |
|
|
|
|
|
|
|
для: вялый
(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>
|
| |
|
|
|
|