Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение вёрстки меню, прошу написать скрипт 
V
    Опции темы
ОнКофе
Дата 14.3.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Код

function MenuItem (title, link, submenu, submenulink,)    
{    
this.Title = title;    
this.Link = link;    
this.SubMenu = submenu;    
this.SubMenuLink = submenulink    
}    
new MainMenuItem("пункт 1", "index1.htm"    
, {    
"подменю 1.1" : "new1.htm",    
"подменю 1.2" : "new2.htm"    
}),    
new MainMenuItem("пункт 2", "index2.htm"    
, {    
"подменю 2.1" : "new3.htm",    
"подменю 2.2" : "new4.htm"    
});    


и нужно вставить эти названия и сами ссылки в таблицу
Код

<table>    
<tr>    
<td><a href="index1.htm">пункт1</a></td>    
</tr>    
<tr>    
<td><a href="new1.htm">подменю 1.1</a></td>    
<td><a href="new2.htm">подменю 1.2</a></td>    
</tr>    
</table>    
<table>    
<tr>    
<td><a href="index2.htm">пункт 2</a></td>    
</tr>    
<tr>    
<td><a href="new3.htm">подменю 2.1</a></td>    
<td><a href="new4.htm">подменю 2.2</a></td>    
</tr>    
</table>    


ПРИМЕЧАНИЕ: нужна такая функция-конструктор, которая будет заполнять эту таблицу автоматически... то есть, чтобы я в любой момент мог добавить в массив новую ссылку, и таблица сама перестраивалась бы.

Если кто-нибудь знает - помогите! ЗАРАНЕЕ БЛАГОДАРЕН!


M
Aliance
Зачем плодить темы? Пользуйся кнопкой “код” правильно!


Это сообщение отредактировал(а) Aliance - 14.3.2006, 13:13
PM MAIL WWW   Вверх
Sardar
Дата 14.3.2006, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



А своих попыток не было? smile
При нулевом коде обычно обращаються в раздел "работа".

Наверное в конце недели поставлю сюда одну интересную менюшку с подробным, написал на днях для нашего форума, там будет и построение вёрстки.

Совет: убирай таблицы, делай меню на списке (UL), задавай стили, будет гораздо проще работать smile
Название давай осмысленное, просто "JS" рискует упасть в мусор не прочитанным.



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ciber SLasH
Дата 14.3.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Объясняю алгоритм:
1) обходишь в цикле все свойства объекта:
Код

for (var i in Obj) {
    
}

где i — будет текущим свойством объекта при каждой итерации; Obj — твой объект с менюхами
2) в цикле делаешь проверку текущего свойства на то, содержит ли он в себе другой объект, т.е. подменю:
Код

if (i instanceof Object) {
    
}

3) если проверка дала положительный результат, то проходишь по всем свойствам этого подобъекта:
Код

if (i instanceof Object) {
    for (var i in ) {
        
    }
}

ну и при каждом проходе соответственно строишь необходимую разметку. Просто заведи переменную и прибавляй постепенно к ней разметку, а после — присоединяешь эту разметку к необходимому элементу.
PM   Вверх
Ciber SLasH
Дата 14.3.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Стоп, тут вообще-то не так, даже меню с помощью этого конструктора неправильно создаётся. Тут нужно подругому.
PM   Вверх
ОнКофе
Дата 14.3.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(Ciber SLasH @ 14.3.2006, 15:08)
Стоп, тут вообще-то не так, даже меню с помощью этого конструктора неправильно создаётся. Тут нужно подругому.

Вы можете написать готовый результат? Я думаю, что это будет многим интересно!
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Да ничего тут интересного вообще нет, даже с таблицами подход не очень рулит. Вот что я намудрил:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<script type='text/javascript'>
/*** Конструктор элементов меню ***/
function MainMenuItem (title, link, submenu, submenulink) {
this.Title = title;
this.Link = link;
this.SubMenu = submenu;
this.SubMenuLink = submenulink;
}

/*** Создание разметки для меню ***/
function buildMenu(obj) {
/*
Пример начального состояния content в run-time:
content = 
    <table>
    <tr><td><a href='index1.htm'>пункт 1</a></td></tr>
*/
var content = "<table>\n<tr><td><a href='"+
    obj.Link+"'>"+obj.Title+"</a></td></tr>\n";
    // Пробегаем по всем элементам массива "подменю ссылок", т.е. то, что идёт 4-м параметром ф. MainMenuItem
    for (var i = 0; i < obj.SubMenuLink.length; i++) {
        // Дополняем content
        content += "<tr><td><a href='"+obj.SubMenuLink[i]+"'>"+obj.SubMenu[i]+"</a></td></tr>\n";
    }
    content += "</table>";
return content;        // собрали всё разметку для олного элемента массива myMenu
}

onload = function () {
var menu = document.getElementById("menu");
    // Пробегаем по всему массиву myMenu и создаём разметку для каждого его елемента
    for (var i = 0; i < myMenu.length; i++) {
        menu.innerHTML += buildMenu(myMenu[i]);
    }
}

var myMenu = [
    new MainMenuItem("пункт 1", "index1.htm", ["подменю 1.1", "подменю 1.2"], ["new1.htm", "new2.htm"]),
    new MainMenuItem("пункт 2", "index2.htm", ["подменю 2.1", "подменю 2.2"], ["new3.htm", "new4.htm"]),
    new MainMenuItem("пункт 3", "index3.htm", ["подменю 3.1", "подменю 3.2"], ["new5.htm", "new6.htm"])
];
</script>
<style type='text/css'>
table, td {border: 1px solid black}
#menu {margin: 10px}
</style>
</head>

<body>
<div id='menu'></div>
</body>
</html>


Это сообщение отредактировал(а) Ciber SLasH - 14.3.2006, 16:30
PM   Вверх
Sardar
Дата 14.3.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



ОнКофе, делаешь древовидное меню?
Тогда забей на таблицы, пользуй списками (да и вообще в любом меню списками), структура уже есть, перебирать обьекты умеем (смотри пост Ciber SLasH'a), а вёрстку создаём путём:
Код

//все действия по созданию узла и набору его повторяем для каждого меню/субменю,
//лучше вызывать функцию рекурсивно

  var uzel = document.createElement("ul"); //создали узел (меню)
  //набиваем опциями, есессно в цикле, тут для примера
  var opcija = document.createElement("li");
  opcija.appendChild(document.createTextNode("Опция 1"));
  //допустим в submenu лежит ранее созданный узел, на практике лучше вузвать функцию
  //рекурсивно на структуре подменю
  opcija.appendChild(submenu);

  //в итоге имеем узел (меню в смысле) со всеми подузлами,
  //добавим его в документ
  document.body.appendChild(uzel); //за место body любая нода

Так в идеале строиться вёрстка, для древовидных структур всё предельно просто если функция вызывает себя рекурсивно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ciber SLasH
Дата 14.3.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Отредактировал свой предыдущий пост, а вообще почитай эту статью: http://webmascon.com/topics/coding/42a.asp
PM   Вверх
ОнКофе
Дата 14.3.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,

http://webmascon.com/forum/viewtopic.php?t...bfd5847e217135f

Я там принимал обсуждение (он_кофе)... полностью понял конструкцию меню построенного на списках с использованием списков, но к сожалению мне нужно пользоваться таблицами... такие условия... поэтому я и просил о помощи... Сейчас посмотрю как ты передела! ОЧЕНЬ благодарен
Добавлено @ 16:09
Ciber SLasH,
а вот посмотри, я попробовал вставить
var c = new MainMenuItem("пункт 3", "index3.htm", ["подменю 3.1", "подменю 3.2"], ["new5.htm", "new6.htm"]);

но 3 пункт меню у меня не показывает как быть? А все понял.. нашел причину....
Вот сюда добавим + buildMenu(с) и получим...
<input type="button" onClick='document.getElementById("menu").innerHTML = buildMenu(a) + buildMenu(b) + buildMenu(с)' value="Создать меню">

Тогда такой вот вопрос, а как сделать, чтобы меню сразу отображалось, ну чтобы не нужно было нажимать на кнопку... и при этом не сувать вызов функции в <body> ??? Есть ИДЕИ?


Думаю что если ты еще добавишь описание всего того что ты написал, то это очень многим пригодится. Сейчас я уже не за свои интересы говорю!

Это сообщение отредактировал(а) ОнКофе - 14.3.2006, 16:16
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Отредактировал свой пост с кодом.
PM   Вверх
ОнКофе
Дата 14.3.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,

Великолепно!!! Я ПРОСТО В ВОСТОРГЕ !!!
Такой вопрос.... а это все как-нить можно на asp перенести? будет в asp работать? А у тебя есть ася?

PM MAIL WWW   Вверх
12345c
Дата 14.3.2006, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Есть многочисленные примеры меню на сайтах со скриптами - http://script.woweb.ru/index.htm/c/65 и подобные, разделы "Навигация".


PM WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 14.3.2006, 16:37 Найти цитируемый пост)
будет в asp работать?

Понятия не имею, я с ASP-ом не знаком.
PM   Вверх
ОнКофе
Дата 14.3.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(Ciber SLasH @ 14.3.2006, 16:42)
Понятия не имею, я с ASP-ом не знаком.

не против если я с твоим скриптом убегу в раздел asp ? ГЫ!
Добавлено @ 16:53
Ciber SLasH,
еще наткнулся на непонятное.... а как сделать пункт меню например второй, чтобы у него не было подпунктов???
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Да пожалуйста, хотя стоит заглянуть по ссылке, которую дал 12345c
PM   Вверх
ОнКофе
Дата 14.3.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
оно может и стоит заглянуть... только ведь там скрип скачаешь и все.. и никто не поможет разобраться, никто не поможет переделать.... такие вот дела....

еще наткнулся на непонятное.... а как сделать пункт меню например второй, чтобы у него не было подпунктов???
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Просто пишешь пустые массивы:
Код

new MainMenuItem("пункт 2", "index2.htm", [], []),


Это сообщение отредактировал(а) Ciber SLasH - 14.3.2006, 17:03
PM   Вверх
ОнКофе
Дата 14.3.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(Ciber SLasH @ 14.3.2006, 17:02)
Код

new MainMenuItem("пункт 2", "index2.htm", [], []),

попробовал...
тогда получается что ячейка таблицы по ширине меньше тех ячеек, которые с подменю... как быть?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Поменять стиль на такой:
Код

<style type='text/css'>
table, td {border: 1px solid black; width: 100%}
#menu {margin: 10px; width: 200px}
</style>

PM   Вверх
ОнКофе
Дата 14.3.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
ОГРОМНОЕ СПАСИБО!!!!
только вот теперь такой вопрос!!!
А как мне определить цвет ячеек, чтобы у меню был одного цвета а у подменю другого!???
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



В 23-строке и в 28-строке в генерируемой ячейке пропиши класс, а затем опиши класс в стилях.
Вообще-то это уже к JS не имеет отношение, это в "Вёрстка web-сайтов".
PM   Вверх
ОнКофе
Дата 14.3.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
так... разобрался....
вот еще вопрос! а можно сделать чтобы подменю было отдельным слоем? ну чтобы его можно было потом сбоку приделать... тоесть подводишь мышку к пункту меню, а подменю вылазит сбоку...
Я понимаю что это все переделать нужно, просто если есть возможность подскажи..., так сказать дай направление...
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Поставь обработчики onMouseOver, onMouseOut событий на DIV с менюхой.
По onMouseOver — показываешь весь DIV (display: block), по onMouseOut — скрываешь (display: none).
PM   Вверх
ОнКофе
Дата 14.3.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
не пойму куда <DIV> засунуть нужно .... подскажи, пожалуйста!
а во всех браузерах работать будет?
Добавлено @ 17:43
Ciber SLasH,

попоробовал изменить класс вот так
var content = "<table>\n<tr><td class="menu"><a href='"+obj.Link+"'>"+obj.Title+"</a></td></tr>\n";

ничего не получилось... выходит пустое окно... в стилях этот клас прописал... КАК БЫТЬ?
PM MAIL WWW   Вверх
ОнКофе
Дата 14.3.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,

вот еще оказывается что мне нужно, чтобы у всех <DIV> id автоматически выстанавливался в очередном порядке начиная с 1.... , но только чтобы у тех пунктов меню, у которых нет подменю, id <div> был равен null

вот например
Код

<table>
<tr><td>Пункт 1</td></tr>
<div id=1>
<tr><td>Подменю 1.1</td></tr>
<tr><td>Подменю 1.2</td></tr>
</div>

<tr><td>Пункт 2</td></tr>
<div id=null>
</div>

<tr><td>Пункт 1</td></tr>
<div id=2>
<tr><td>Подменю 2.1</td></tr>
<tr><td>Подменю 2.2</td></tr>
</div>

</table>


Что-то примерно так.... ЗАРАНЕЕ БЛАГОДАРЕН!!!
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 14.3.2006, 17:36 Найти цитируемый пост)
не пойму куда <DIV> засунуть нужно

Никуда его засовывать не надо. Его надо по умолчанию скрыть и определить элемента, на который при наведении грызуном будет показываться этот DIV.

Цитата(ОнКофе @ 14.3.2006, 17:36 Найти цитируемый пост)
попоробовал изменить класс вот так
var content = "<table>\n<tr><td class="menu">

Ну так кавычки аедь обрывают строку! Их либо надо экранировать \", либо использовать одинарные.

Цитата(ОнКофе @ 14.3.2006, 17:59 Найти цитируемый пост)
чтобы у всех <DIV> id автоматически выстанавливался

Ну так определить нужно глобальную переменную, которую прописывать в ID при генерации таблицы, а следом увеличивать эту переменную.

Цитата(ОнКофе @ 14.3.2006, 17:59 Найти цитируемый пост)
у которых нет подменю, id <div> был равен null

Условие можно вставить: если длина массив подменю 0, то вставить null.
Это уже елементарщина пошла, тут всего-лишь нужно чуть-чуть напрячь мозг.
PM   Вверх
ОнКофе
Дата 14.3.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
я понимаю что элементарщина, но так ведь это для тебя оно так, для меня иначе...
все равно не могу понять как <DIV> сделать чтобы он не к каждой ячейке прописывался а только к тем которые лежат в подменю.... и как описать условие если длина массив подменю 0, то вставить null, тоже не пойму...


После того как присвоил класс для <td> между ячейками стало видно пространсто... это можно как-нибудь избежать? с этим разобрался... вместо <table> написал <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tr><td class=\"menu\">

Прошу о помощи!
Еще раз прошу написать код! СПАСИБО!

Это сообщение отредактировал(а) ОнКофе - 14.3.2006, 18:59
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<script type='text/javascript'>
/*** Конструктор элементов меню ***/
function MainMenuItem (title, link, submenu, submenulink) {
this.Title = title;
this.Link = link;
this.SubMenu = submenu;
this.SubMenuLink = submenulink;
}

var index = 1;
/*** Создание разметки для меню ***/
function buildMenu(obj) {
var content = "<table><tr><td class='mainMenu'><a href='"+obj.Link+"'>"+obj.Title+"</a></td></tr>";
    // Если подменю НЕ пустое
    content += (obj.SubMenuLink.length > 0) ? "<div id='"+index+"'>" : "<div id='null'>";
    if (obj.SubMenuLink.length > 0)    index++;
    // Пробегаем по всем элементам массива "подменю ссылок", т.е. то, что идёт 4-м параметром ф. MainMenuItem
    for (var i = 0; i < obj.SubMenuLink.length; i++) {
        // Дополняем content
        content += "<tr><td class='subMenu'><a href='"+obj.SubMenuLink[i]+"'>"+obj.SubMenu[i]+"</a></td></tr>";
    }
    content += "</div></table>";
return content;        // собрали всё разметку для олного элемента массива myMenu
}
function showMenu(num) {
    menuObj.style.display = num ? "block" : "none";
}
onload = function () {
menuObj = document.getElementById("menu");
    // Пробегаем по всему массиву myMenu и создаём разметку для каждого его елемента
    for (var i = 0; i < myMenu.length; i++) {
        menuObj.innerHTML += buildMenu(myMenu[i]);
    }
}

var myMenu = [
    new MainMenuItem("пункт 1", "index1.htm", ["подменю 1.1", "подменю 1.2"], ["new1.htm", "new2.htm"]),
    new MainMenuItem("пункт 2", "index2.htm", [], []),
    new MainMenuItem("пункт 3", "index3.htm", ["подменю 3.1", "подменю 3.2"], ["new5.htm", "new6.htm"])
];
</script>
<style type='text/css'>
table, td {border: 1px solid black; width: 100%}
td.mainMenu {background: #CCCCFF}
td.subMenu {background: #CCFFCC}
#menu {width: 200px; display: none}
</style>
</head>

<body>
<div onMouseOver='showMenu(1)' onMouseOut='showMenu(0)' style='cursor: pointer'>&gt;&gt; Меню здесь &lt;&lt;
    <div id='menu'></div>
</div>
</body>
</html>

PM   Вверх
ОнКофе
Дата 14.3.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
немного не то.... но это я виноват.. поспешил.... давай по порядку разберемся...
нужно чтобы в конечном счете получилось вот так
Код

<table>    
<tr><td>Пункт 1</td></tr>    
<div id=1>    
<tr><td>Подменю 1.1</td></tr>    
<tr><td>Подменю 1.2</td></tr>    
</div>    
<tr><td>Пункт 2</td></tr>    
<div id=null> <!-- id=null так как нет понктов подменю  -->    
</div>    
<tr><td>Пункт 1</td></tr>    
<div id=2>    
<tr><td>Подменю 2.1</td></tr>    
<tr><td>Подменю 2.2</td></tr>    
</div>    
</table>


так можно сделать?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Вот ещё вариант через NODE-ы:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<script type='text/javascript'>
/*** Конструктор элементов меню ***/
function MainMenuItem (title, link, submenu, submenulink) {
this.Title = title;
this.Link = link;
this.SubMenu = submenu;
this.SubMenuLink = submenulink;
}

var index = 1;
/*** Создание разметки для меню ***/
function buildMenu(obj) {
var objTable = document.createElement("TABLE");
var objTR = document.createElement("TR");
var objTD = document.createElement("TD");
    objTD.className = "mainMenu";
var objA = document.createElement("A");
    objA.href = obj.Link;
    objA.innerHTML = obj.Title;
    objTD.appendChild(objA);
    objTR.appendChild(objTD);
    objTable.appendChild(objTR);
    // Если подменю НЕ пустое
var objDiv = document.createElement("DIV");
    if (obj.SubMenuLink.length > 0) {
        objDiv.id = String(index);
        index++;
    } else {
        objDiv.id = "null";
    }
    // Пробегаем по всем элементам массива "подменю ссылок", т.е. то, что идёт 4-м параметром ф. MainMenuItem
    for (var i = 0; i < obj.SubMenuLink.length; i++) {
        objTR = document.createElement("TR");
        objTD = document.createElement("TD");
        objTD.className = "subMenu";
        objA = document.createElement("A");
        objA.href = obj.SubMenuLink[i];
        objA.innerHTML = obj.SubMenu[i];
        objTD.appendChild(objA);
        objTR.appendChild(objTD);
        objDiv.appendChild(objTR);
    }
    objTable.appendChild(objDiv);
return objTable;
}
function showMenu(num) {
    menuObj.style.display = num ? "block" : "none";
}
onload = function () {
menuObj = document.getElementById("menu");
    // Пробегаем по всему массиву myMenu и создаём разметку для каждого его елемента
    for (var i = 0; i < myMenu.length; i++) {
        menuObj.appendChild(buildMenu(myMenu[i]));
    }
//alert(menuObj.innerHTML);
}

var myMenu = [
    new MainMenuItem("пункт 1", "index1.htm", ["подменю 1.1", "подменю 1.2"], ["new1.htm", "new2.htm"]),
    new MainMenuItem("пункт 2", "index2.htm", [], []),
    new MainMenuItem("пункт 3", "index3.htm", ["подменю 3.1", "подменю 3.2"], ["new5.htm", "new6.htm"])
];
</script>
<style type='text/css'>
table, td {border: 1px solid black; width: 100%}
td.mainMenu {background: #CCCCFF}
td.subMenu {background: #CCFFCC}
#menu {width: 200px; display: none}
#1 {background: red}
</style>
</head>

<body>
<div onMouseOver='showMenu(1)' onMouseOut='showMenu(0)' style='cursor: pointer'>&gt;&gt; Меню здесь &lt;&lt;
    <div id='menu'></div>
</div>
</body>
</html>

PM   Вверх
ОнКофе
Дата 14.3.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, через ноды не работает... да и ты не в том направлении пошел... посмотрий мое прошлое сообщение!
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Ну ведь разметка такая и получается через NODE-ы. Раскомментируй 60-ю строку и посмотри разметку.
А NODE-ы почему-то при таком раскладе работают только в Opera, FireFox, а в IE — нет.
PM   Вверх
ОнКофе
Дата 14.3.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
блин мне IE - это основное!!! это главное так сказать!!!
ты можешь отвлечься от нодов? вернись к старому!... нужно теперь только <DIV> каким-то образом определить!

PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Почему-то DIV-ы не хотят становится на места. Как я понял они должны обрамлять строки таблицы, а они почему-то ничего не обрамляют. С этой багой я не знаю как бороться.
PM   Вверх
ОнКофе
Дата 14.3.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, я верю в тебя!!! ты можешь!!!
нужно перед каждым началом подменю поставить <DIV> и после того как массив с подменю закончится тоже поставить </div>

ТЫ СМОЖЕШЬ!!!
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 14.3.2006, 20:48 Найти цитируемый пост)
нужно перед каждым началом подменю поставить <DIV> и после того как массив с подменю закончится тоже поставить </div>

Именно так и не получается, что-то где-то глючит и разметка получается другая.
Добавлено @ 20:52
А для чего эти DIV-ы?
PM   Вверх
ОнКофе
Дата 14.3.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
смотри а вот так сможешь сделать???

Код

<table>
<tr>
<td><a href="пункт 1">Пункт 1</a> </td>
<td>
<div id=1>
 <table>
   <tr><td><a href="подменю 1.1">Подменю 1.1</a></td></tr>
   <tr><td><a href="подменю 1.2">Подменю 1.2</a></td></tr>
   <tr><td><a href="подменю 1.3">Подменю 1.3</a></td></tr>
   <tr><td><a href="подменю 1.4">Подменю 1.4</a></td></tr>
</table>
</div>
</td>
</tr>

<tr>
<td>Пункт 2 </td>
<td>
<div id=null> <!--  id=null так как не содержит подменю -->
</div>
</td>
</tr>

<tr>
<td><a href="пункт 3">Пункт 3</a></td>
<td>
<div id=2>
 <table>
   <tr><td><a href="подменю 3.1">Подменю 1.1</a></td></tr>
   <tr><td><a href="подменю 3.2">Подменю 3.2</a></td></tr>
   <tr><td><a href="подменю 3.3">Подменю 3.3</a></td></tr>
   <tr><td><a href="подменю 3.4">Подменю 3.4</a></td></tr>
</table>
</div>
</td>
</tr>

</table>


PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



В таком варианте DIV-ы становятся абсолютно ненужными, т.к. ID-шник можно засунуть внутрь TABLE.
Добавлено @ 21:11
Вместо DIV, в строках 20 и 27 пропиши TABLE и будет тебе счастье.
PM   Вверх
ОнКофе
Дата 15.3.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, пожалуйста напиши как это все будет выглядеть!
И чтобы номера у id автоматически проставлялись и в случае отсутствия подменю ставился null...
Смотри как много народу просматривает наш топик!!! Наверно интересно! Думаю что всем новичкам есть что тут почитать!!! Жду с нетерпением твоего кода!!! У тебя аси нет?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 15.3.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<script type='text/javascript'>
/*** Конструктор элементов меню ***/
function MainMenuItem (title, link, submenu, submenulink) {
this.Title = title;
this.Link = link;
this.SubMenu = submenu;
this.SubMenuLink = submenulink;
}

var index = 1;
/*** Создание разметки для меню ***/
function buildMenu(obj) {
var content = "<table><tr><td class='mainMenu'><a href='"+obj.Link+"'>"+obj.Title+"</a></td></tr>";
    // Если подменю НЕ пустое
    content += (obj.SubMenuLink.length > 0) ? "<table id='"+index+"'>" : "<table id='null'>";
    if (obj.SubMenuLink.length > 0)    index++;
    // Пробегаем по всем элементам массива "подменю ссылок", т.е. то, что идёт 4-м параметром ф. MainMenuItem
    for (var i = 0; i < obj.SubMenuLink.length; i++) {
        // Дополняем content
        content += "<tr><td class='subMenu'><a href='"+obj.SubMenuLink[i]+"'>"+obj.SubMenu[i]+"</a></td></tr>";
    }
    content += "</table></table>";
return content;        // собрали всё разметку для олного элемента массива myMenu
}
function showMenu(num) {
    menuObj.style.display = num ? "block" : "none";
}
onload = function () {
menuObj = document.getElementById("menu");
    // Пробегаем по всему массиву myMenu и создаём разметку для каждого его елемента
    for (var i = 0; i < myMenu.length; i++) {
        menuObj.innerHTML += buildMenu(myMenu[i]);
    }
alert(menuObj.innerHTML);
}

var myMenu = [
    new MainMenuItem("пункт 1", "index1.htm", ["подменю 1.1", "подменю 1.2"], ["new1.htm", "new2.htm"]),
    new MainMenuItem("пункт 2", "index2.htm", [], []),
    new MainMenuItem("пункт 3", "index3.htm", ["подменю 3.1", "подменю 3.2"], ["new5.htm", "new6.htm"])
];
</script>
<style type='text/css'>
table, td {border: 1px solid black; width: 100%}
td.mainMenu {background: #CCCCFF}
td.subMenu {background: #CCFFCC}
#menu {width: 200px; display: none}
</style>
</head>

<body>
<div onMouseOver='showMenu(1)' onMouseOut='showMenu(0)' style='width: 150px; cursor: pointer'>&gt;&gt; Меню здесь &lt;&lt;
    <div id='menu'></div>
</div>
</body>
</html>

для скрытия alert-а, закомментируй 39-строку.
PM   Вверх
ОнКофе
Дата 16.3.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
хм..... не плохо!! ЗДОРОВО!!!
а как сделать чтобы оно сразу появлялось, чтобы не нужно было подводить мышь к надписи "Меню здесь"???
PM MAIL WWW   Вверх
Ciber SLasH
Дата 16.3.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 16.3.2006, 19:11 Найти цитируемый пост)
а как сделать чтобы оно сразу появлялось, чтобы не нужно было подводить мышь к надписи "Меню здесь"???

Но ведь тогда это уже не меню, а простая таблица...
А так вообще адаляешь DIV, где прописаны обработчики событий (оставляешь только DIV с id='menu') и в стилях у #menu убираешь display: none
PM   Вверх
ОнКофе
Дата 17.3.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
прикольно!!!
СПАСИБо!

PM MAIL WWW   Вверх
ОнКофе
Дата 20.3.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Цитата(Ciber SLasH @ 14.3.2006, 17:33)
Поставь обработчики onMouseOver, onMouseOut событий на DIV с менюхой.
По onMouseOver — показываешь весь DIV (display: block), по onMouseOut — скрываешь (display: none).

Если внутри <div> стоит <iframe> то onMouseOut не работает! Как быть?

Это сообщение отредактировал(а) ОнКофе - 20.3.2006, 13:14
PM MAIL WWW   Вверх
Ciber SLasH
Дата 20.3.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 20.3.2006, 13:12 Найти цитируемый пост)
Если внутри <div> стоит <iframe> то onMouseOut не работает! Как быть?

Ставь onMouseOut в <iframe>:
Код

<div style='background: red'><iframe onMouseOut='this.style.display = "none"'></iframe></div>

PM   Вверх
ОнКофе
Дата 20.3.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, а разве у iframe есть onMouseOut или подобное свойство???

Попробовал сейчас и ничего!!! Не работает так!! Как-то по другому нужно!

Это сообщение отредактировал(а) ОнКофе - 20.3.2006, 17:46
PM MAIL WWW   Вверх
Ciber SLasH
Дата 21.3.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 20.3.2006, 17:43 Найти цитируемый пост)
Ciber SLasH, а разве у iframe есть onMouseOut или подобное свойство???

Но ведь работает, я проверял в IE6, FireFox 1.5.0.1, Opera 7.54, Opera 8.51.
PM   Вверх
ОнКофе
Дата 21.3.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH,
у меня OPERA вот это
Код

:    
<div style='background: red'><iframe src="1.htm"></iframe></div>

вообще не воспринемает... подводишь мышкой к пункту меню, потом пытаешься передти в это подменю которое iframe показывает, но как только двигаешь мышкой подменю сразу убирается... хотя в других браузерах нормально!!!

Попробовал вот так:
Код

:    
<div style='background: red'><iframe src="1.htm" onMouseOver=' this.style.display = "block" '></iframe></div>

- не помогло.... Opera - мозг парит Что можно придумать?

Это сообщение отредактировал(а) ОнКофе - 21.3.2006, 13:34
PM MAIL WWW   Вверх
Ciber SLasH
Дата 22.3.2006, 03:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Приведи весь код, который ты проверяешь. Я уже запутался в хронологии постов...
PM   Вверх
ОнКофе
Дата 22.3.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



так работает везде:
Код

<html>    
<head>    
<title></title>    
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">    
 <Style>    
.menu_light{background-color:#000000;font-family:Verdana,Arial;font-size:10px;font-weight:bold;color:#ffffff;text-decoration:none;}    
.menu{background-color:#000000;border:1px solid #ffffff;border-bottom:0;padding:2px 5px;}    
 </Style>    
<script language="JavaScript">    
function showdiv(id, num) {    
document.getElementById(id).style.display = num ? "block" : "none";    
}    
 </SCRIPT>    
</head>    
<body topmargin="0" leftmargin="0">    
<table width="100" border="0" cellspacing="0" cellpadding="0">    
<tr onMouseOver="showdiv('1', 1)" onMouseOut="showdiv('1', 0)">    
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Новости</a></td>    
<td valign="top">    
 <table border=0 cellPadding=0 cellSpacing=0 width=150 class="table" id="1" style="display:none;position:absolute;width:150px;z-index:1;">    
   <tr><td class="menu"><a  class="menu_light" href="#">Пункт 1</a></td></tr>    
   <tr><td class="menu"><a  class="menu_light" href="#">Пункт 2</a></td></tr>    
</table>    
</td>    
</tr>    
<tr onMouseOver="showdiv('2', 1)" onMouseOut="showdiv('2', 0)">    
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></td>    
<td valign="top">    
 <table border=0 cellPadding=0 cellSpacing=0 width=150 class="table" id="2" style="display:none;position:absolute;width:150px;z-index:1;">    
   <tr><td class="menu"><a  class="menu_light" href="#">Пункт 1</a></td></tr>    
   <tr><td class="menu"><a  class="menu_light" href="#">Пункт 2</a></td></tr>    
</table>    
</td>    
</tr>    
</table>    
</body></html>


и все хорошо, кроме одного случая, когда выпадающее подменю попадает на элементы формы или flash-анимацию или applet, то подменю оказывается под ними... пробовал z-index - не помагает flash все равно сверху... попробовал сделать через iframe вот так:
Код

<html>    
<head>    
<title></title>    
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">    
 <Style>    
.menu_light{background-color:#000000;font-family:Verdana,Arial;font-size:10px;font-weight:bold;color:#ffffff;text-decoration:none;}    
.menu{background-color:#000000;border:1px solid #ffffff;border-bottom:0;padding:2px 5px;}    
 </Style>    
<script language="JavaScript">    
function showdiv(id, num) {    
document.getElementById(id).style.display = num ? "block" : "none";    
}    
 </SCRIPT>    
</head>    
<body topmargin="0" leftmargin="0">    
<table width="100" border="0" cellspacing="0" cellpadding="0">    
<tr onMouseOver="showdiv('1', 1)" onMouseOut="showdiv('1', 0)">    
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Новости</a></td>    
<td valign="top">    
 [B]<div id="1" style="display:none;position:absolute;width:150px;z-index:1;">    
<iframe src="1.htm"  frameborder="0" marginwidth="0" marginheight="0"scrolling="no"></iframe>
</div>[/B]    
</td>    
</tr>    
<tr onMouseOver="showdiv('2', 1)" onMouseOut="showdiv('2', 0)">    
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></td>    
<td valign="top">    
 [B]<div id="1" style="display:none;position:absolute;width:150px;z-index:1;">    
<iframe src="2.htm"  frameborder="0" marginwidth="0" marginheight="0"scrolling="no"></iframe>
</div>[/B]        
</td>    
</tr>    
</table>    
</body></html>


работает нормально везде, но вот в Opera работать не хочет, как только курсор попадает на слой срабатывает onMouseOut="showdiv('2', 0)".... Что делать? Главное что везде нормально все работает, только в Opera не хочет!!!
PM MAIL WWW   Вверх
ОнКофе
Дата 22.3.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, слушай, я кажется кое что придумал!!! попробовал работает даже в опере! Мне вот только теперь одну вещь нужно выяснить...
суть такова:

в целом вся страница разбита на две области - правая область и левая область.
Можно сделать чтобы при наведении курсора подменю появлялось, но не убиралось, то есть onMouseOut="showdiv('1', 0) не писать!!! Вернее написать но уже не в ячейке а в <div> смотри:
Код

<table>
  <tr>
    <td>здесь левая область</td>

    <td>здесь правая область</td>
  </tr>
</table>

В левой находится меню, в правой контекст...
Код

<table>
  <tr>
    <td>
<!-- здесь меню -->
<table width="100" border="0" cellspacing="0" cellpadding="0">     
<tr onMouseOver="showdiv('1', 1)">     
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Новости</a></td>     
<td valign="top">     
 <div id="1" style="display:none;position:absolute;width:150px;z-index:1;" [B]onMouseOut="showdiv('1', 0)"[/B]>     
   <iframe src=""></iframe>     
</div>         
</td>     
</tr>     
<tr onMouseOver="showdiv('2', 1)">    
<td width="100" class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></td>     
<td valign="top">     
 <div id="2" style="display:none;position:absolute;width:150px;z-index:1;" [B]onMouseOut="showdiv('2', 0)"[/B]>     
   <iframe src=""></iframe>     
</div>    
<!-- /здесь меню -->

    </td>

    <td>здесь правая область</td>
  </tr>
</table>


в этом случае все будет работать как и прежде только с одним отличием... в Opera слои не будут убираться, они будут показываться и оставатся на месте... тогда мы сможем перемещаться по сылкам которые находятся в IFRAME... а чтобы они убирались мы в правой области
Код

<table>
  <tr>
    <td>здесь левая область</td>

    <td [B]onMouseOver="showdiv('1',0);showdiv('2',0);"[/B]>[B]здесь правая область[/B]</td>
  </tr>
</table>

поставим событие onMouseOver="showdiv('1',0);showdiv('2',0);", тоесть когда в Opere курсор будут перемещаться с подменю, он будетпопадать в правую область где стоит обработчик события - "прятать слой"... В этом случае везде работает нормально, даже в этой самой Opera, теперь собственно мой вопрос....
Понимаешь у меня довольно много пунктов меню и их подменю, поэтому не удобно писать там где мне нужно onMouseOver="showdiv('1',0);showdiv('2',0); ................................ showdiv(' N ',0);" - чтобы все слои закрывались когда курсор уходит из области слоя (специально для Opera)... Можно ли эту запись сократить?
Как сделать чтобы вызвать одну функцию и она закрывала все эти <div>

Это сообщение отредактировал(а) ОнКофе - 22.3.2006, 16:30
PM MAIL WWW   Вверх
ОнКофе
Дата 22.3.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, переделал я так как написал выше.... все стало тормозить.... из-за одной Opera столько проблем... Ты не нашел решения этой задачки?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 23.3.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Можно ещё так выкрутиться:
Код

<html>
<head>
<title></title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
 <Style>
.menu_light{background-color:#000000;font-family:Verdana,Arial;font-size:10px;font-weight:bold;color:#ffffff;text-decoration:none;}
.menu{background-color:#000000;border:1px solid #ffffff;border-bottom:0;padding:2px 5px; width: 90px}
 </Style>
<script language="JavaScript">
function showdiv(id, num) {
document.getElementById(id).style.display = num ? "block" : "none";
}
 </SCRIPT>
</head>
<body topmargin="0" leftmargin="0">
<table width="100" border="0" cellspacing="0" cellpadding="0">
<tr onMouseOver="showdiv('1', 1)" onMouseOut="showdiv('1', 0)">
<td width="100"><div class="menu"><a href="/ind.htm" class="menu_light">Новости</a></div></td>
<td valign="top">
<div id="1" style="display:none;position:absolute;width:150px;z-index:1;left:90px">
<iframe src="1.htm" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" width="100" height="20"></iframe>
</div>
</td>
</tr>
<tr onMouseOver="showdiv('2', 1)" onMouseOut="showdiv('2', 0)">
<td width="100"><div class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></div></td>
<td valign="top">
<div id="2" style="display:none;position:absolute;width:150px;z-index:1;left:90px">
<iframe src="2.htm" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" width="100" height="20"></iframe>
</div>
</td>
</tr>
</table>
</body></html>


Это сообщение отредактировал(а) Ciber SLasH - 23.3.2006, 12:27
PM   Вверх
ОнКофе
Дата 23.3.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, ты предлогаешь засунуть подменю на пункты меню? чтобы Opera не замечала уход курсора с ячейки что ли? А можно это сделать только для Opera а в остальных браузерах чтобы нормально было?

ну то есть вот тут
Код

<div id="1" style="display:none;position:absolute;width:150px;z-index:1;left:90px">

если пользователь зашел под Opera оставить left:90px, а если под любым другим сделать left:100px Можно так как-нибудь? Я пробовал у меня что-то не очень получилось..

Это сообщение отредактировал(а) ОнКофе - 23.3.2006, 11:38
PM MAIL WWW   Вверх
Ciber SLasH
Дата 23.3.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Смотри мой предыдущий код, я его исправил.
PM   Вверх
ОнКофе
Дата 23.3.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, просто сделал меню <div> !!!!!!!!!!! И ВСЕ???
Все гениальное просто??? :-)
смотри только я стал увеличивать меню и оно уже не работает... ты принцип то не рассказал
Код

<html>    
<head>    
<title></title>    
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">    
 <Style>    
.menu_light{background-color:#000000;font-family:Verdana,Arial;font-size:10px;font-weight:bold;color:#ffffff;text-decoration:none;}    
.menu{background-color:#000000;border:1px solid #ffffff;border-bottom:0;padding:2px 5px; width: 200px}    
 </Style>    
<script language="JavaScript">    
function showdiv(id, num) {    
document.getElementById(id).style.display = num ? "block" : "none";    
}    
 </SCRIPT>    
</head>    
<body topmargin="0" leftmargin="0">
<table width="200" border="0" cellspacing="0" cellpadding="0">    
<tr onMouseOver="showdiv('1', 1)" onMouseOut="showdiv('1', 0)">    
<td width="200"><div class="menu"><a href="/ind.htm" class="menu_light">Новости</a></div></td>    
<td valign="top">    
<div id="1" style="display:none;position:absolute;width:150px;z-index:1;left:200px">    
<iframe src="1.htm" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" width="200" height="120"></iframe>    
</div>    
</td>    
</tr>    
<tr onMouseOver="showdiv('2', 1)" onMouseOut="showdiv('2', 0)">    
<td width="200"><div class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></div></td>    
<td valign="top">    
<div id="2" style="display:none;position:absolute;width:150px;z-index:1;left:200px">    
<iframe src="2.htm" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" width="200" height="60"></iframe>    
</div>    
</td>    
</tr>    
</table>    
</body></html>

Добавлено @ 12:56
Ciber SLasH, все дошдо до меня!!! просто ширину ячейки нужно сделать больше ширины <div> и будет тогда мне счастье!!!

Ну что думаю вопрос решен!!!! МОЙ ТЕБЕ РЕСПЕКТ!!!!
Ты лучший!!!!! А ведь народ до сих пор думает как же сделать...а ты не стал думать, ты просто сделал!!!! Надеюсь что больше непредвиденных ситуаций не случится.... но пока не буду закрывать тему!!! А вдруг еще нужно будет что-нить по этому вопросу узнать...

Думаю этот топик можно добавить в учебное пошаговое пособие!!!
PM MAIL WWW   Вверх
ОнКофе
Дата 23.3.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, вот что не получается... я бы хотел чтобы подменю немного (padding-left:2) отступало от основного меню.... попробовал - ничего не вышло... Opera снова начинает парить мозг... можно ли это как-нибудь сделать? Или хотя бы чтобы в Opera отступа не было а во всех других браузерах отступ был???
Код

<div id="1" style="display:none;position:absolute;width:150px;z-index:1;left:90px;padding-left:2">

PM MAIL WWW   Вверх
Ciber SLasH
Дата 23.3.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Поставь:
1) в классе menu: width: 198px
2) в DIV-ах: left:200px
PM   Вверх
ОнКофе
Дата 23.3.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, тогда Mozilla FireFox накладывает подменю на пункты меню и вообще никакого отступа не получается... а в Opera и IE нормально!
Добавлено @ 14:57
Ciber SLasH, вообще нужно просто отслеживать когда пользователь зашел с Opera и тогда просто накладывать подменю на меню..... и все!
PM MAIL WWW   Вверх
Ciber SLasH
Дата 23.3.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type='text/javascript'>
function showdiv(id, num) {
document.getElementById(id).style.display = num ? "block" : "none";
}
</script>
<style type='text/css'>
body {margin: 0; padding: 0}
.menu_light{
    font: bold 10px Verdana,Arial;
    text-decoration: none;
    color: white;
    background-color: black;
}
.menu{
    width: 198px;
    border-bottom: 0;
    padding: 2px 5px;
    border: 1px solid white;
    background-color: black;
}
.submenu {
    position: absolute;
    left: 212px;
    width: 150px;
    display: none;
    z-index: 1;
    border: 1px solid black;
}
.submenu iframe {
    width: 100px;
    height: 20px;
    margin: 0;
}
</style>
</head>

<body>
<table cellspacing="0" cellpadding="0" border="0">
<tr onMouseOver="showdiv('s1', 1)" onMouseOut="showdiv('s1', 0)">
    <td width="220"><div class="menu"><a href="/ind.htm" class="menu_light">Новости</a></div></td>
    <td valign="top">
        <div id="s1" class='submenu'><iframe src="1.htm" scrolling="no"></iframe></div>
    </td>
</tr>
<tr onMouseOver="showdiv('s2', 1)" onMouseOut="showdiv('s2', 0)">
    <td width="220"><div class="menu"><a href="/ind.htm" class="menu_light">Трудности</a></div></td>
    <td valign="top">
        <div id="s2" class='submenu'><iframe src="2.htm" scrolling="no"></iframe></div>
    </td>
</tr>
</table>
</body>
</html>

PM   Вверх
ОнКофе
Дата 23.3.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, а я просто вместо цвета ячейки
Код

 <Style>     
.menu_light{background-color:#000000;font-family:Verdana,Arial;font-size:10px;font-weight:bold;color:#ffffff;text-decoration:none;}     
.menu{background-color:#000000;border:1px solid #ffffff;border-bottom:0;padding:2px 5px; width: 200px}     
 </Style>    

поставил картинку, то есть убрал background-color:#000000, а вместо нее поставил пиксельную картинку и все стало нормально...

а зачем ты в ID добавил "s" ??? Что просто цифры нельзя ?? как было раньше id=1 не правильно?

Это сообщение отредактировал(а) ОнКофе - 23.3.2006, 16:22
PM MAIL WWW   Вверх
ОнКофе
Дата 23.3.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, смотри, у меня под меню идет блок 150px я попробовал сделать чтобы и меню было шириной 150px но Mozilla FireFox постоянно что-то свое выдает.... Как быть-то?

PM MAIL WWW   Вверх
Ciber SLasH
Дата 23.3.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 23.3.2006, 16:20 Найти цитируемый пост)
а зачем ты в ID добавил "s" ??? Что просто цифры нельзя ?? как было раньше id=1 не правильно?

ID-шники и имена не должны начинаться с цифры. FireFox в логах ошибку выдаёт.
В таком варианте как щас, нужно постоянно подстраивать 3 значения:
1) если увеличиваешь длину ячейки таблицы с меню <td width="220">, то
2) нужно подстроить длину меню: .menu{width: 198px;
3) и подстроить отступ подменю: .submenu {left: 212px;
но главное, чтобы отступ подменю не превышал длину ячейки таблицы с меню.
PM   Вверх
ОнКофе
Дата 24.3.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Ciber SLasH, все-равно не получается... даже тот код который ты последний раз написал... в Opera и IE отступ подменю от меню одного размера а в Mozilla FireFox совсем другого размера...


Когда добился более менее одинакового результата во всех бразерах стало ясно еще одно....
пока в IFRAME указан src которого нет, то все работает... но как только укажешь реальный адрес, чтобы туда подгружалось подменю, то переход в подменю невозможен - ни в Mozilla ни в Opera... как только ставишь src на несуществующий url то все работает!!!

Это сообщение отредактировал(а) ОнКофе - 24.3.2006, 11:57
PM MAIL WWW   Вверх
Ciber SLasH
Дата 24.3.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(ОнКофе @ 24.3.2006, 11:23 Найти цитируемый пост)
пока в IFRAME указан src которого нет, то все работает... но как только укажешь реальный адрес, чтобы туда подгружалось подменю, то переход в подменю невозможен - ни в Mozilla ни в Opera...

Это наверно связано с проблемой безопасности и все браузеры, кроме IE, не разрешают переход по ссылкам. smile
Придётся наверно тебе забить на IFRAME.
PM   Вверх
ОнКофе
Дата 28.3.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



решил снова поднять эту тему.....
вот такой вопрос

помнишь ты писал:
Код

<script language="JavaScript">    
function showdiv(id, num) {    
document.getElementById(id).style.display = num ? "block" : "none";    
}    
 </SCRIPT>


А можно ли к нему еще как-нибудь добавить задержку, ну чтобы по истечении определенного времени меню само убиралось?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 28.3.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Вызывай функцию так:
Код

setTimeout("showdiv('1', 1)", 1000)

PM   Вверх
ОнКофе
Дата 28.3.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



понятно... спасибо!!!
Ну теперь точно тема закрыта!!!!

smile
PM MAIL WWW   Вверх
ОнКофе
Дата 29.3.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



пишу
Код

 setTimeout("showdiv('ppp', 1)",1000)


и не работает, что не так???
PM MAIL WWW   Вверх
Ciber SLasH
Дата 29.3.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Код

<tr onMouseOver='setTimeout("showdiv(\"s1\", 1)", 500)' onMouseOut='setTimeout("showdiv(\"s1\", 0)", 500)'>

PM   Вверх
ОнКофе
Дата 3.4.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Opera оказывается вообще забила на iframe... стоит iframe или не стоит ей плевать, она все-равно показывает flash баннер сверху слоя!!!
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1374 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.