Проблема с всплывающими меню
Люди я делаю сайт и столкнулся с проблемой. Нашел скрипт всплывающего меню кое-как отредактировал: сделал так, чтобы всплывающая часть меню, всплывая раздвигала остальные пункты, но после того как мышу отвожу всплывающая часть залазит обратно.
Как сделать что бы всплывающая часть вылазила по клику и не залазила без клика обратно. P.S. я в JS ничего толком незнаю, люди, помогите! |
Перечитайте, пожалуйста, Ваше сообщение. Вы объяснились крайне неясно.
|
Найдите (on)mouseover и (on)mouseout и замените на (on)click. Шанс что будет работать 17%, но большего без кода никто не предложит.)
|
Aetae,
повышаю шанс до 70% ;) |
Цитата:
Так что только 17%) |
Цитата:
|
Условно одновременно. Все всплывающие штуки всё равно делаются таймаутом иль интервалом, т.е. ...
Ну допустим простейший вариант: работет <div id='the_id' style="margin:50px;height:60px;background:#ddf;width:50px;"></div> <script type="text/javascript"> function event(o,e,h) {o.addEventListener?o.addEventListener(e, h, false):o.attachEvent('on'+e,h)} m={i:50,h:0,s:0} id=document.getElementById('the_id'); event(id,'mouseover',show); event(id,'mouseout',hide); function show() { !m.h||clearTimeout(m.h); if(m.i<400) {id.style.width=(m.i=m.i+10)+'px';m.s=setTimeout(show,10)} } function hide() { !m.s||clearTimeout(m.s) if(m.i>50) {id.style.width=(m.i=m.i-10)+'px';m.h=setTimeout(hide,10)} } </script> не работает <div id='the_id2' style="margin:50px;height:60px;background:#fdd;width:50px;"></div> <script type="text/javascript"> function event(o,e,h) {o.addEventListener?o.addEventListener(e, h, false):o.attachEvent('on'+e,h)} m2={i:50,h:0,s:0} id2=document.getElementById('the_id2'); event(id2,'click',show2); event(id2,'click',hide2); function show2() { !m2.h||clearTimeout(m2.h); if(m2.i<400) {id2.style.width=(m2.i=m2.i+10)+'px';m2.s=setTimeout(show2,10)} } function hide2() { !m2.s||clearTimeout(m2.s) if(m2.i>50) {id2.style.width=(m2.i=m2.i-10)+'px';m2.h=setTimeout(hide2,10)} } </script> |
Извиняюсь что не долго не появлялся.
вот мой код скрипта: .glossymenu, .glossymenu li ul{ list-style-type: none; margin: 0; padding: 0; width: 185px; /*WIDTH OF MAIN MENU ITEMS*/ border: 2px solid blue; } .glossymenu li{ position: relative; } .glossymenu li ul{ /*SUB MENU STYLE*/ width: 190px; /*WIDTH OF SUB MENU ITEMS*/ left: 0; top: 0; display: none; filter:alpha(opacity=100); -moz-opacity:1; } .glossymenu li a{ background: white url(glossyback.gif) repeat-x bottom left; font: bold 18px Monotype Corsiva, Helvetica, sans-serif; color: red; display: block; width: auto; padding: 5px 0; padding-left: 10px; text-decoration: none; } .glossymenu .arrowdiv{ position: absolute; right: 5px; background: transparent url(arrow.gif) no-repeat center right; } .glossymenu li a:visited, .glossymenu li a:active{ color: red } .glossymenu li a:hover{ background-image: url(glossyback2.gif); } 'OnMouseOut' u 'OnMouseOver' в скрипте нету. В моем скрипте указано, что подменю скрыто - display: none; |
3aByJIoH,
Как говорят в таких случаях ЗАЧЁД или патсталом :lol: . Вы показываете не скрипт, а css (Cascading Style Sheets - Каскадные таблицы стилей) они отвечают за отображение стиля вашего меню, а не за поведение. Нужный код находится между тегов <script></script> или в подключаемом js файле. |
Извиняюсь, я ж говорил, что я полный нуб...
только вот такая фигня если я onmouseover u onmouseout заменяю на onclick оно не работает, похоже он при клике моментально открывается и закрывается... короче вот скрипт: var menuids=new Array("verticalmenu") //Enter id(s) of UL menus, separated by commas var submenuoffset=-2 //Offset of submenus from main menu. Default is -2 pixels. function createcssmenu(){ for (var i=0; i<menuids.length; i++){ var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul") for (var t=0; t<ultags.length; t++){ var spanref=document.createElement("span") spanref.className="arrowdiv" spanref.innerHTML=" " ultags[t].parentNode.getElementsByTagName("a")[0].appendChild(spanref) ultags[t].parentNode.onmouseover=function(){ this.getElementsByTagName("ul")[0].style.left=this.parentNode.offsetWidth+submenuoffset+"px" this.getElementsByTagName("ul")[0].style.display="block" } ultags[t].parentNode.onmouseout=function(){ this.getElementsByTagName("ul")[0].style.display="none" } } } } if (window.addEventListener) window.addEventListener("load", createcssmenu, false) else if (window.attachEvent) window.attachEvent("onload", createcssmenu) |
Часовой пояс GMT +3, время: 02:30. |