Сразу скажу о проблемах
1. На меню наслаиваются (т.е. находятся поверх) некоторые элементы форума. В моем случае это разделительные линии
которые находятся в поле приветствия. Как решить данную проблему пока не знаю. видимо надо поколдовать с z-index
А теперь непосредственно сам код.
для начала мы опишем стиль видимого (visible) и невидимого(hidden) дива, а также стиль корневого пункта меню (LLI) и подпункта меню(LLII)
<style> .hidden { position: absolute; visibility: hidden; } .visible { position: absolute; visibility: visible; z-index: 2; //вот где-то здесь предстоит колдовать } .LLI{ //корневой пункт меню font-size: 14; text-decoration: none; font-weight: bold; color: black; } .LLII{ //подпункт меню font-size: 14; text-decoration: none; color: Maroon; </style>
Дале пишем непосредственно функции, которые будут преводить наши дивы из видимого состояния в невиидимое:
<script language="JavaScript"> function showObject(obj) { obj.className = "visible"} function hideObject(obj) { obj.className = "hidden"} </script>
теперь опишем корневой пункт меню. а точнее див, который его содержит:
<div style="position: absolute; top: 20px; left: 20px;" //здесь мы задаем позицию верхнего левого угла onmouseover="javascript:showObject(someDIV)" //в этих двух строчках вместо someDIV указываем имя своего дива onmouseout="javascript:hideObject(someDIV)"> <TABLE><TBODY valign=center><TR><TD> //данная таблица будет содеражть корневой пункт меню <SPAN class=LLI> [КОРНЕВОЙ ПУНКТ МЕНЮ] //это то, что будет видно в корневом пункте меню </SPAN></TD></TR></TBODY></TABLE> </div>
помеченное красным это координаты верхнего левого угла дива корневого пункта меню. Если вы поместите данный див хтмл-низ/верх, то отсчет будет вестись от верхнего левого угла самой страницы. В объявление - от верхнего левого угла объявлния. В форму ответа - от верхнего левого угла формы ответа.
не забуддьте поменять имя дива которое в последствии будете показывать как подменю (помечено синим)
Теперь строим непосредственно подменю. А точнее див в котором у нас будет поменю.
<div id="someDIV" class="hidden" //вот и имя нашего дива подменю style="position: absolute; top: 40px; left: 20px;" //это координаты дива. onmouseover="javascript:showObject(drink)" onmouseout="javascript:hideObject(drink)"> <TABLE bgcolor=white bordercolor=black border=1 cellpadding=0 cellspacing=0> //это таблица и есть ваше подменю <TR> <TD><SPAN class=LLII> пункт меню раз</SPAN></TD></TR> <TR> <TD><SPAN class=LLII> пункт меню два</SPAN></TD></TR> <TR> <TD><SPAN class=LLII> пункт меню три</SPAN></TD></TR> </TABLE> </div>
левая координата дива подменю по умолчанию совпадает с левой координатой дива корневого пункта. верхняя координата опущена вниз на высоту шрифта в пикселях. но учтите, что эти два дива должны иметь пересечение хотябы в 1 пиксель. Иначе когда вы будете спускаться мышью с корневого пункта на подменю, в момень когда курсор мыши покинет корневой пункт, но еще не будет на подменю, то подменю просто закроеся и вы не сможетена него попасть. именно по этой причине они должны пересекаться или быть вплотную