Alexander-V-Sh Posted October 30, 2006 Report Share Posted October 30, 2006 (edited) Нужно сделать 3 кнопки (buttom) при нажатии на которые ниже вылетит табличка с формой поиска, авторизацией и массшатбом (3 кнопки - 3 меню). Аналогично выпадающему меню, только с формами. И соотв. при повторном нажатии или нажатии вне открывшегося окна чтобы убиралась. Выдернул скрипт из VBulletin, хорошо, удобно, красиво, но там под 15кб скрипт получился... Я в яве мало понимаю, но там в теории 2 функции - Show и Hide. Наподобе как сдесь - Опции и Рейтинг (только при переходе с одного на другое не нужно выбрасывать другое меню). Сохранил страничку - посмотреть, тут скриптов море, это мне пару дней рыться, отсеивая ненужное . Да и похоже он такой же как в VBulletin Красоты никакой не нужно, нужно минимум кода - показать таблицу с формой и убрать. Может у кого то есть нечто похожее? Заранее Спасибо. Edited October 30, 2006 by Alexander-V-Sh Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted October 30, 2006 Report Share Posted October 30, 2006 Alexander-V-Sh: помести форму в тег div с любым(уникальным) параметром id <div id="myform"><form ... </form></div> На кнопку пропиши параметр onclick="showhide('myform')" далее в тег head вставь скрипт: <script language="javascript"><!--var showed = null;function showhide(id) { if(showed == null) {showed = document.getElementById(id);showed.style.display = "block"; } else {showed.style.display = "none";if(showed.innerHTML == document.getElementById(id).innerHTML) { showed = null;} else { showed = document.getElementById(id); showed.style.display = "block";} }}//--></script> Link to comment Share on other sites More sharing options...
alex45 Posted October 30, 2006 Report Share Posted October 30, 2006 Короче есть код, он правда не совсем коректно работает. Когда нажимаеш слой появляется, а когда нажимаеш еще раз слой почему-то не исчезает. А так все нормально. Код: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Untitled Document</title> <script language="javascript" type="text/javascript"> function show(layer) { if (document.getElementById(layer).style.visibility="hidden") { document.getElementById(layer).style.visibility="visible"; } else if (document.getElementById(layer).style.visibility="visible") { document.getElementById(layer).style.visibility="hidden"; } } function hide(layer) { document.getElementById(layer).style.visibility="hidden"; } </script> <style type="text/css"> #menu01 { margin-left: 0px; visibility: hidden; } #menu02 { margin-left: 0px; visibility: hidden; } #menu03 { margin-left: 0px; visibility: hidden; } .a { width: 150px; background-color: #3399FF; color: #FFFFFF; } </style> </head> <body> <table width="60%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="20%"><a href="#" onClick="show('menu01');" onBlur="hide('menu01')">Link01</a></td> <td width="20%"><a href="#" onClick="show('menu02');" onBlur="hide('menu02')">Link02</a></td> <td width="20%"><a href="#" onClick="show('menu03');" onBlur="hide('menu03')">Link03</a></td> </tr> <tr> <td width="20%"><div class="a" id="menu01">Суда вставиш свою форму</div></td> <td width="20%"><div class="a" id="menu02">Суда вставиш свою форму</div></td> <td width="20%"><div class="a" id="menu03">Суда вставиш свою форму</div></td> </tr> </table> </body> </html> Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted October 30, 2006 Author Report Share Posted October 30, 2006 (edited) Лорд Дмитрий: Наподобе у меня есть, используется много где. Но спасибо, этот другой немного, приспособлю куда нибудь. Сдесь просто форма сверху должна быть, а не на странице (места нет для нее). Тоесть открываться сверху (как "Опции" сдесь) Нужно как написал alex45, только при щелчке на форме (в открывшемся меню) - она не пропадала, а пропадала при щелчке на ссылке или в вне открывшемся меню. И чтобы работало в Опере. Хотя сдесь помоему место тоже выделено на странице и открывается в своем месте, а не поверху... Менюшка (с формой) будет накладывается на текст и таблицы, которые идут ниже ссылки. В общем как "Опции" и "Рейтинг", но без прибамбосов (в виде красивого вылета меню, открытия и закрытия при перемещении и т.д.). В архив выложил скрипт. Там мусора наверно полно... Я удалял куски явы, пробуя в броузерах (работает-неработает). Наверняка осталось что то лишнее. Плюс эффект - перехода с одной кнопки на другую (открытие одного меню и закрытие другого) - ненадо. Нажал - открылось - нажал - закрылось. Эффект открывания красивый, с боку. Может еще что то удалить можно, чтобы он хотя бы кб 5 весил. Лорд Дмитрий Если не сложно, может хлам лишний выкинешь оттуда? (если аналога проще нет) Так то скрипт хороший, много где пригодится. showthread.rar showthread.rar Edited October 30, 2006 by Alexander-V-Sh Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted October 31, 2006 Report Share Posted October 31, 2006 (edited) Alexander-V-Sh: вот сделал, правда не то что было у тебя, а по новому. То что ты дал, то ли чистил многое неглядя, то ли сделано неправильно Edited October 31, 2006 by Лорд Дмитрий Link to comment Share on other sites More sharing options...
alex45 Posted October 31, 2006 Report Share Posted October 31, 2006 Спасибо за помощь и за скрипт, плюс те в репу. Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted October 31, 2006 Author Report Share Posted October 31, 2006 Лорд Дмитрий Там я действительно удалял все подрят, проверяя на работоспособность скрипт. Подругому я в яве не умею. Удаляю часть - обновляю страницу (если работает, то ОК), потому удаляю другое (не работает - вертаю назад) и т.д. А можно ли сделать, как на рисунке: а сейчас как рисунке: чтобы открывшееся меню, не двигала текст вниз, а накладывалось на него. И еще чтобы при клике вне формы (которая открылась) - она бы закрывалась. Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted November 1, 2006 Report Share Posted November 1, 2006 Alexander-V-Sh: совсем забыл прописать в стилях ))) пропиши у самой таблицы наверно там где <table width="99%"> замени на <table width="99%" style="z-index:10;position:absolute;left:15;top:0;"> а перед текстом набей <br> чтобы выровнять его под таблицей. Хотя если такой метод тебе не нравится (в IE текст будет чуть ниже чем в опере или фаерфоксе) то можно сделать скрипт по серьёзнее. Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted November 1, 2006 Author Report Share Posted November 1, 2006 (edited) Лорд Дмитрий: Вроде все фунциклирует теперь Спасибо еще раз :D Осталось только все разместить, вставить формы и красоту навести. Вопрос один еще. У меня на главной странице стоит скрипт прокрутки новостей, в котором присутсвует строка: var SBiedom=document.all||document.getElementById; Из за нее менюха не работает... На всех остальных страницах как надо. Я думал из-за document.getElementById, но это встречается сплош и рядом в яве. А больше ничего общего то и нет со скриптом менюхи... И еще маленький вопросик. Можно ли сделать, чтобы меню закрывалось при клике вне формы (что открылось). Это необязательно, поэтому если что то много менять, то ненужно. Edited November 1, 2006 by Alexander-V-Sh Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted November 1, 2006 Report Share Posted November 1, 2006 Alexander-V-Sh: всё что делает эта строка, это присваевает переменной SBiedom массив document.all (если он есть) или функцию document.getElementById (если первого нет) ошибка в том, что если это массив (document.all) то id объекта пишется строкой в квадратных скобках, или через точку (как объект) если же это функция (document.getElementById) то id объекта пишется строкой в круглых скобках и не как иначе Немного теории: Когда JavaScript только появился и было всего два браузера (NN и IE) у них было очень много разногласий в объектной модели В Internet Explorer объектная модель была взята из VBScript с его document.all В Netscape Navigator создал более удобную модель с функциями document.getElementById и document.getElementByTagName Сегодня вариант NN поддерживают все браузеры включая IE вариант с document.all не поддерживается последними версиями NN и Mozilla хоть и последние версии Firefox поддерживают document.all но выводит предупреждение в консоль ошибок... Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted November 3, 2006 Author Report Share Posted November 3, 2006 Ошибка (что не работают 2 скрипта) в window.onload; Используется и там и там. Как вариант, сделать: function myfun() { menu(); - функция со скрипта навигации SBpopulate(); - функция со скрипта скролинга } window.onload=myfun; Но поскольку скролинг только на 1 странице, придется делать условие, на проверку страниц. Это не сложно. Вопрос, можно ли в навигации этой обойтись без window.onload? чтобы не мудрить с пхп и явой, а просто подключить 1 скрипт. Если нет, то делаю с условием на страницы. Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted November 3, 2006 Report Share Posted November 3, 2006 Alexander-V-Sh: Вопрос, можно ли в навигации этой обойтись без window.onload? чтобы не мудрить с пхп и явой, а просто подключить 1 скрипт.Если нет, то делаю с условием на страницы. зависит от скрипта навигации! скорее всего обойтись нельзя, если есть событие, то оно нужно! Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted November 3, 2006 Author Report Share Posted November 3, 2006 Лорд Дмитрий: Разберусь :) У меня тут альтернатива еще появилась, подумать надо. Еще раз тебе спасибо, что не пожалел время помочь :) Link to comment Share on other sites More sharing options...
alex45 Posted November 4, 2006 Report Share Posted November 4, 2006 А почему у меня скрипт неправильно пашет. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now