Логин:

Пароль:

Форумы
Общие вопросы
Document Object Model
Обсуждаем конференцию
Web Usability (test)

Общие вопросы

Проблемы с выпадающим меню. Прошу помощи.

Недавно передо мной стала проблема создания выпадающего меню на JavaScript,
наподобии того, которое используется на сайте www.webmoney.ru. В поисках
информации много чего излазил, начитался, но так и не понял главного - как
это все организовать. Поэтому прошу у вас совета.
Итак, вначале я приведу исходный код скрипта:
---
<script language=JavaScript>
var pT,pL,pW,pH;
function d(id,id_){
id.style.background="#CEEEEE";
pT=id.offsetTop;
pL=id.offsetLeft;
var w=28;
while (id.offsetParent!=null) {
id=id.offsetParent;
pT+=id.offsetTop;
pL+=id.offsetLeft; }
pT+=w;
pW=id.offsetWidth;
pH=id.offsetHeight;
pL-=1;
id_.style.posTop=pT;
id_.style.posLeft=pL;
id_.style.visibility="visible"; }
function k(){
if ((id!=null) && (id_=null)){
x=window.event.clientX;
y=window.event.clientY;
if ((pL<x || x<(pL+pW)) || (pT<y || y<(pT+pH))) {
// Тут пока ничего не придумано.
}
}
else { }
}
</script>
---
В HTML коде присутствует, соответственно, слой, первоначально невидимый <div
id="mainmenu_" style="visibility: hidden; position: absolute;"> и ячейка
таблички, у которой прописано onmouseover="d(mainmenu,mainmenu_)"
id="mainmenu".
Итак, при наведении на ячейку меню выпадает (по крайней мере в ИЕ5, а пока
мне большего не нужно), но вот как заставить его скрываться при уходе
курсора - ума не приложу! Пробовал вызывать функцию k() onmousemove из
BODY - не работает. Главная загвоздка в том, чтобы сделать скрипт
универсальным, то есть не писать каждый раз отдельный скрипт для каждой
ячейки таблички, при наведении на которую мышью возникает эффект выпадания
подменю. Соответственно, нужно (я так думаю) передавать каждый раз функции
какие-то параметры. Но как сделать правильно таким образом, чтобы подменб
еще и исчезало при уходе курсора мыши?
В то же время я подозреваю, что возможно у меня грубая ошибка вообще в
логике работы скрипта. Я смотрел скрипт на сайте webmoney.ru - признаться,
не понял, как он работает. Там не передается никаких переменных, однако
каким-то образом скрипт узнает, какое меню должно всплывать - первое,
второе, третье или четвертое. Для меня это остается загадкой.
Вообщем вот такая вот у меня проблема - очень прошу вас помочь. Посоветуйте,
что мне сделать, возможно изменить логику, может быть что-то подправить.
Очень надеюь на вашу помощь, так как срок сдачи моей работы уже поджимают, а
злобный шеф уже спит и видит, как будет с меня три шкуры спускать за то, что
не выполнил "такую фигню"...

Заранее спасибо,
с уважением,
Вадим.
СообщениеАвторДата
Вадим25.10.2001 11:08
Вадим25.10.2001 22:46
avs28.10.2001 11:45