Регистрация Вход 

Имя пользователя:   Пароль:   Автоматически входить при каждом посещении  

Начать новую тему Ответить на тему
Найти:




Автор Сообщение
 Заголовок сообщения: JavaSсript
СообщениеДобавлено: 03 окт 2006 11:48 am 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Кто разбирается?
Ваяю менюху в джаве: горизонтальное меню, при наведении выплывает подменю. Скрипт содержится в отдельном файле.
короче проблема: когда мышь уводишь от меню, то подменю остается. Как сделать чтобы оно убралось?
Вот тело скрипта:
Код:
ns=window.navigator.appName == "Netscape"
ie=window.navigator.appName == "Microsoft Internet Explorer"
function openIt(x) {
if(ns) {
   showbox= document.layers[x+1]
     showbox.visibility = "show"
       showbox.top=44
    var items = 2     
     for (i=1; i<=items; i++) {
      elopen=document.layers[i]
        if (i != (x + 1)) {
          elopen.visibility = "hide" }
            }
  }   

if(ie) {
   curEl = event.toElement
   showBox = document.all.box[x];
     showBox.style.visibility = "visible";
        showBox.style.top = 180;
         
   var items = 2
    for (i=0; i<items; i++) {
      elOpen=document.all.box[i]
       barEl=document.all.mnubar[i]
        if (i != x){
          elOpen.style.visibility = "hidden"
       }
     }
   }
}

function closeIt() {
   var items = 2
     for (i=0; i<items; i++) {
       if(ie){
        document.all.box[i].style.visibility = "hidden"
          barEl=document.all.mnubar[i]
       }
       if(ns){ document.layers[i+1].visibility = "hide"}         
}
}

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 окт 2006 18:51 pm 
Не в сети
Постоянный посетитель
Аватар пользователя

Зарегистрирован: 27 ноя 2005 12:04 pm
Сообщений: 641
Откуда: Щёкино, старый город
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Видимо, совсем плохо с кодерами в городе Щ :( Топик вообще мёртвый :(

_________________
Смешная надпись в подписи.


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 08:52 am 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
М-да... поучил я, кстати, матчасть, можно выйти из положения display:block, но это свойство стия, привязать к проходу мыши так и не получилось.

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 16:34 pm 
Не в сети
Капитан Корабля
Аватар пользователя

Зарегистрирован: 07 май 2005 21:17 pm
Сообщений: 6647
Пункты репутации: 123

Добавить пункт репутацииВычесть пункт репутации
Angel писал(а):
М-да... поучил я, кстати, матчасть, можно выйти из положения display:block, но это свойство стия, привязать к проходу мыши так и не получилось.


Свойства мыши будут примерно такие:

Код:
onMouseMove
onMouseOut
onClick


С блоками примерно так:
Код:
display = none; display = block;
visibility = hide; visibility = show;

Cоответственно алгоритм такой

Код:
что-то.там.onMouseOut
{
что-то.там.style.display = 'none';
или
что-то.там.style.visibility = 'hidden';
}


Разница в том что в одном случае обрабатываешь элемент как inline а в другом как block-level

Как понял я тебе для обьекта подменю надо добавить событие onMouseOut и на это событие повесить функцию которая у тебя убирает меню.

Т.е. ищешь в коде сайта как у тебя подменю сформировано. Тэгами
  • или еще как и добавляешь к тэгу подменю следующую конструкцию

    Код:
    <DIV onMouseOut="closeIt();"></DIV>


    В принципе делал такие меню. Есть готовые решения. Но код другой. Не тот что у тебя.

    _________________
    Ведь родился и вырос на улице Ленина И меня зарубает время от времени. (с) Ноль


    Последний раз редактировалось serg-smirnoff 09 окт 2006 17:09 pm, всего редактировалось 2 раз(а).

 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 16:41 pm 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Серега, display = none не работает, тупо брал и вставлял к тегу А строку onmouseout="this.style.display='none'" все замечательно, мышь убераешь, подменю пропадает, но после навода нифига не заводится. Надо цикл делать, а у меня руки ни от туда растут.

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 16:48 pm 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
DIV не катит, если в меню, то он переводит все на новую строку, а у меня горизонтальное меню, я использовал SPAN для открытия, т.е.
SPAN openIt(0). А подменю у меня в виде ячейки там я уже засовывал в DIV.

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 16:50 pm 
Не в сети
Капитан Корабля
Аватар пользователя

Зарегистрирован: 07 май 2005 21:17 pm
Сообщений: 6647
Пункты репутации: 123

Добавить пункт репутацииВычесть пункт репутации
Angel писал(а):
Серега, display = none не работает, тупо брал и вставлял к тегу А строку onmouseout="this.style.display='none'" все замечательно, мышь убераешь, подменю пропадает, но после навода нифига не заводится. Надо цикл делать, а у меня руки ни от туда растут.


onMouseOut регистр кстати важен.

Что бы заводилось после навода добавляй onMouseMove или лучше onMouseOn и на него вешай не closeIt() а ту функцию что меню открывает. display = 'show' или как там display = 'block'

_________________
Ведь родился и вырос на улице Ленина И меня зарубает время от времени. (с) Ноль


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 окт 2006 16:52 pm 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Ща попробую. :)

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 окт 2006 09:43 am 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Не Серег, не катит. Выдавил вот такую конструкцию
Код:
onMouseOut="this.style.visibility = 'hidden'"

и приставил к тегу DIV. Подводишь мышь к меню - вылазит подменю, но когда пытаешься навести на подменю оно естественно скрывается. Короче, нифига не выходит аленький цветочек.

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 окт 2006 19:43 pm 
Не в сети
Капитан Корабля
Аватар пользователя

Зарегистрирован: 07 май 2005 21:17 pm
Сообщений: 6647
Пункты репутации: 123

Добавить пункт репутацииВычесть пункт репутации
там надо смотреть. хочешь кидай скрипты в ЛС
и html и jscript коды. поправлю.

_________________
Ведь родился и вырос на улице Ленина И меня зарубает время от времени. (с) Ноль


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 окт 2006 10:52 am 
Не в сети
Постоянный посетитель
Аватар пользователя

Зарегистрирован: 04 июл 2005 16:14 pm
Сообщений: 522
Откуда: Щёкино
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Код:
showbox= document.layers[x+1]


Старая конструкция... работает тока в IE... FireFox обругается и правильно сделает... надо через DOM тянуть...[/code]


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 окт 2006 13:25 pm 
Не в сети
Капитан Корабля
Аватар пользователя

Зарегистрирован: 07 май 2005 21:17 pm
Сообщений: 6647
Пункты репутации: 123

Добавить пункт репутацииВычесть пункт репутации
Alex писал(а):
Код:
showbox= document.layers[x+1]


Старая конструкция... работает тока в IE... FireFox обругается и правильно сделает... надо через DOM тянуть...[/code]


там обычно что-то типа document.getEllementById(id).style используется.

а как в динамической модели к DIV обращаться я уже и не помню. может просто document.div(id).style, а может по другому. надо знать всю структуру последовательно от document. может он в table вложен, который в свою очередь еще в какой-то table вложен, и так далее.

_________________
Ведь родился и вырос на улице Ленина И меня зарубает время от времени. (с) Ноль


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 окт 2006 13:45 pm 
Не в сети
Постоянный посетитель
Аватар пользователя

Зарегистрирован: 04 июл 2005 16:14 pm
Сообщений: 522
Откуда: Щёкино
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
По id...

Код:
el = document.getElementById(id);
el.style = bla bla bla;



bla bla bla


Цитата:
надо знать всю структуру последовательно от document

Структура не нужна... зачем?

з.ы. Серёг, ты ща где нить работаешь? К нам вроде требуются есчё пехапихеры...


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 окт 2006 09:22 am 
Не в сети
Аксакал
Аватар пользователя

Зарегистрирован: 29 янв 2006 18:06 pm
Сообщений: 1765
Откуда: Москва
Пункты репутации: 0

Добавить пункт репутацииВычесть пункт репутации
Вы куда-то не туда зашли. Мне PHP нах не нужен, т.к. не шарю я в нем ни капли.
Серега, я тебе щас кину файлики, глянешь? Буду признателен - отплачу пивом!

_________________
Не мы такие, жизнь такая... :)


 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 окт 2006 18:50 pm 
Не в сети
Капитан Корабля
Аватар пользователя

Зарегистрирован: 07 май 2005 21:17 pm
Сообщений: 6647
Пункты репутации: 123

Добавить пункт репутацииВычесть пункт репутации
Alex писал(а):
По id...

Код:
el = document.getElementById(id);
el.style = bla bla bla;



bla bla bla


Цитата:
надо знать всю структуру последовательно от document


Цитата:
Структура не нужна... зачем?


А если бы задача стояла цеплять не по ID а просто. Типа

Код:
document.forms["1"].input.style


тогда как обратиться к DIV не зная какой у него ID? Например подцепить DIV вложенный в какую-то таблиц по ID таблицы...

[code]з.ы. Серёг, ты ща где нить работаешь? К нам вроде требуются есчё пехапихеры...


offtopic - begin
На текущий момент времени моя работа связана с заправкой лазерных принтеров и комплексным профилактическим обслуживанием всякого рода компьютеров. Короче эникейщик. Программистом не буду работать. Как-то не по мне. И фиговый из меня программист если честно. Если вашей конторе нужен html-кодер, который будет заниматься версткой сайтов за деньги, то я готов рассмотреть предложение. Но опять же подозреваю, что то что предложат мне не подойдет.
offtopic - end

To Angel: Мы не о php, мы о объектной модели документа. И он прав, т.к. конструкция обращения к слоям через массив layers использовалась во времена NN4. Сейчас все через DOM (Dynamic Object Model), для того что бы начать работать с элементом цепляешь его по ID используя метод getEllementById(), а дальше последовательно через свойства эллемента присваиваешь определенные значения. Скрыть, показать и т.д.

Коды кидай, на днях гляну.


Вложения:
Комментарий к файлу: Вот пример выпадающего меню для одного пункта. Тут http://gyroscope-v.narod.ru/ есть работающие меню такого типа
выпадающее меню на jscript.zip [6.29 KiB]
Скачиваний: 67

_________________
Ведь родился и вырос на улице Ленина И меня зарубает время от времени. (с) Ноль
 Профиль  
 

Начать новую тему Ответить на тему





Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0



Город Щекино - JavaSсript - Интернет, программное обеспечение, компьютеры - Щекинский район, Тульская область

Сайт города Щекино, Щекинского района, Тульской области. На сайте города Щекино Вы найдете каталог предприятий и учреждений города. Посмотрите старые фотографии города Щекино. Найдете единомышленников для общения на любые темы. Ознакомитесь с последними новостями города Щекино и Щекинского района. www.schekino.net -- это территория свободного общения!