Большая проблема с размещением меню

Старый mweb

Модератор: [mweb team]

Большая проблема с размещением меню

Сообщение zomzom Вт окт 09, 2007 22:00

Скачал прикольное выпадающее меню на JavaScrip, но вот проблема - мне нужно его вшурупить в сайт который позиционируется по центру и к тому же в ячейку таблицы- вот ссылка на оригинал ( http://packall.ru/1/index.html ) а вот ссылка на то, что у меня получается (после изменения параметра position:absolute на relative и привязке скрипта к нужной ячейке) ( http://packall.ru/z1/zom001.html ) скрипт делает все правильно, только вот отформатирована ячейка не так как надо:

Я плохо знаком с яваскриптами и как правило ими не пользуюсь, но дюже уж менюшка понравилась. К тому же, как я понял тут в общем дело не в самом скрипте а в контейнере к которому он привязан, а контейнер создается на основе CSS:

я так понимаю за расположение данного меню отвечает эта секция:
<style type="text/css">
DIV.clSlide{position:absolute; ;z-index:10; left:0; width:138; height:22; clip:rect(0,138,22,0); padding:3px;}
DIV.clSlideSub{position:absolute; ;z-index:10; padding:2px; clip:rect(0,127,20,0); width:127; height:20; left:8; visibility:hidden}
DIV.clSlideSub2{position:absolute; ;z-index:10; padding:2px; clip:rect(0,118,20,0); width:118; height:20; left:8; visibility:hidden}
#divSlideCont{position:absolute; z-index:10; left:0; top:100; height:600; width:170; visibility:hidden}
A.clSlideLinks{font-family:Verdana, Helvetica, Helv; font-size:11px; font-weight:bold; text-decoration:none; color:white}
A.clSlideSubLinks{font-family:Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; color:Navy}
A.clSlideSub2Links{font-family:Verdana, Helvetica, Helv; font-size:9px; text-decoration:none; color:Navy}
</style>
Которая располагается в голове страницы.
А далее по скрипту идут ссылки на те контейнеры и слои которые созданы и спозиционированны по левому краю.

Прошу помощи.

Помогите разобраться, как вставить данное меню в ячейку таблицы - вернее можно сказать как вставить данный выше контейнер в ячейку тадлицы?((
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Hulio Ср окт 10, 2007 0:30

боюсь что менюшка немного морально устарела...
имхо, в твоем случае нужно написать скрипт котрый позиционирует дивизион (div) в зависимости от разрешения экрана, что по современным меркам сделать очень непросто, поскольку разрешений экранов много...

вариант - подгружаемая css:

Код: Выделить всё
if (screen.width <= 800)
{
document.write("ПУТЬ К CSS")
}
else if(screen.width >= 1280)
{
document.write("ПУТЬ К CSS2")
}
else
{
document.write("ПУТЬ К CSS3")
}


релативная позиция не поможет...

ну и мое решение не блещет изяществом =))
Hulio
Хронический Астматик
 
Сообщения: 1227
Зарегистрирован: Сб июл 13, 2002 0:01

Сообщение zomzom Ср окт 10, 2007 10:34

мне по сути не важно отношение меню к разрешению экрана - если ее воткнуть в определенную ячейку таблицы (я так думаю), которая как раз и имеет плавающие параметры отображения- зависящие от разрешения, то меню будет неизменно - если получится создать контейнер привязанный только к ячейки таблицы.

Вот сюда все и упирается - как создать контейнер для слоев в нетри ячейки таблицы?(
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Muerto Ср окт 10, 2007 10:57

2zomzom:
Вот сюда все и упирается - как создать контейнер для слоев в нетри ячейки таблицы?(
В таком случае у тебя при появлении слоёв будет раздвигаться эта ячейка на высоту слоя.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение zomzom Ср окт 10, 2007 14:37

Это я знаю, поэтому нужно сделать эту ячейку заведомо - с высотой по максимуму от размера слоя.
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Hulio Чт окт 11, 2007 15:32

>если ее воткнуть в определенную ячейку таблицы (я так думаю), которая как раз и имеет плавающие параметры отображения- зависящие от разрешения, то меню будет неизменно

не бут работать
слой имеет абсолютную привязку
relative это от луквого =))
Hulio
Хронический Астматик
 
Сообщения: 1227
Зарегистрирован: Сб июл 13, 2002 0:01

Сообщение zomzom Чт окт 11, 2007 16:47

Я не сильно понял, что ты хотел сказать((

Вот что получается когда я вставляю скрипт в отдельную ячейку http://packall.ru/z1/zom001.html - и это потому, что контейнер со слоями остается по левому краю.
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Berezkin Чт окт 11, 2007 17:21

А если у ячейки поставить ширину? По идее тогда не будет размножаться вбок все
Windows как презерватив - никому не нравится, но все пользуются.
Аватара пользователя
Berezkin
Заядлый `курильщик`
 
Сообщения: 612
Зарегистрирован: Вт дек 19, 2006 12:39
Откуда: Москоу

Сообщение Hulio Пт окт 12, 2007 2:26

>А если у ячейки поставить ширину?
все равно встает рачком

>Вот сюда все и упирается - как создать контейнер для слоев в нетри ячейки таблицы?(

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

с хера оно у тебя бут корректно отображаццо?
ты указал координаты слоя + position: relative; вот он иложиццо у тебя как бог на душу положит. Теоретически можно даже прощитать куда...

position: relative не применяется при указании лефт и топ
данная конструкция предназначена для работы с релативно расположенными слоями без указания координат с параметрами флот и клер (обтеч (мля =)))))) ОБТЕЧЬ и вырезать) в том случае если весь диз построен на слоях

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

вот еще:
провел эксперимент

Код: Выделить всё
<html>
<head>
   <title>Untitled</title>
   <style type="text/css">
DIV.clSlide{position: relative;  ;z-index:10; left:0; width:138; height:22; clip:rect(0,138,22,0); padding:3px;}
DIV.clSlideSub{position: relative; ;z-index:10; padding:2px; clip:rect(0,127,20,0); width:127; height:20; left:8;}
DIV.clSlideSub2{position: relative; ;z-index:10; padding:2px; clip:rect(0,118,20,0); width:118; height:20; left:8; }
#divSlideCont{position: relative; z-index:10; left:0; top:100; height:60; width:170; visibility:hidden}
A.clSlideLinks{font-family:Verdana, Helvetica, Helv; font-size:11px; font-weight:bold; text-decoration:none; color:white}
A.clSlideSubLinks{font-family:Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; color:Navy}
A.clSlideSub2Links{font-family:Verdana, Helvetica, Helv; font-size:9px; text-decoration:none; color:Navy}
</style>

</head>

<body>

<div align="center">
<div class="clSlideSub">казя базя</div>
<div class="clSlideSub2">казя базя</div>
</div>



</body>
</html>


что собственно произошло: браузер послал нах координаты, поскольку position: relative, отсчитал центр и воткнул туда слои

вот еще
то что ты хочешь, но более корректно, без привязывания к слоям
_http://www.ultra-online.ru/cat.php?id=1
Hulio
Хронический Астматик
 
Сообщения: 1227
Зарегистрирован: Сб июл 13, 2002 0:01

Сообщение zomzom Пт окт 12, 2007 11:29

Так что можно сделать не переписывая сам скрипт? И вообще можно как нибыдь жестко привязать контейнер со слоями в ячейку, к примеру к ее левой границе?
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Berezkin Пт окт 12, 2007 13:09

Зная id ячейки, можно скриптом найти ее положение на странице

Код: Выделить всё
function getCoords(obj) {
var coordX = 0, coordY = 0;
while (obj) {
coordX = obj.offsetLeft;
coordY = obj.offsetTop;
obj = obj.offsetParent;
}
}


где obj - id ячейки
Windows как презерватив - никому не нравится, но все пользуются.
Аватара пользователя
Berezkin
Заядлый `курильщик`
 
Сообщения: 612
Зарегистрирован: Вт дек 19, 2006 12:39
Откуда: Москоу

Сообщение Hulio Пт окт 12, 2007 17:17

2zomzom:
как нибыдь жестко привязать контейнер со слоями в ячейку, к примеру к ее левой границе?
К левой - легко, position: absolute и указанием координат, к расположенной относительно центра - нужно дополнять скриптом считающим разрешение
Hulio
Хронический Астматик
 
Сообщения: 1227
Зарегистрирован: Сб июл 13, 2002 0:01

Сообщение zomzom Чт ноя 01, 2007 13:15

Это уже конкретный совет )). А этот скриптик не подскажешь где взять или как он выглядит?

Я так понял Что мне нужно будет просчитать положение меню при каждом разрешении, так чтоб оно попадало в нужную ячейку таблицы?
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Muerto Чт ноя 01, 2007 18:01

Код: Выделить всё
var x;
if (self.innerWidth) {
x = self.innerWidth;
} else if (document.documentElement && document.documentElement.clientHeight) {
x = document.documentElement.clientWidth;
} else if (document.body) {
x = document.body.clientWidth;
}
alert ("Середина страницы по Х в точке " +  x/2 + "px");

Скрипт придётся вешать на onLoad и onResize у body.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Alkeeper Пт ноя 02, 2007 8:32

2Muerto: onresize - не поддерживается стандартами -44-
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Сообщение Muerto Пт ноя 02, 2007 11:29

2Alkeeper: А какая альтернатива? -08-
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Padonak Сб ноя 03, 2007 1:03

window.onresize -03-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение Muerto Сб ноя 03, 2007 13:08

2Padonak: Те же яйца, вид сбоку. Я думал, за время моего запоя, какое новое событие ввели. -06-
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Padonak Сб ноя 03, 2007 17:43

2Muerto:

надо в W3C идею подкинуть что неплохо бы ввести такое событие как muerto.onzapoyend -13- -13- -13-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение Muerto Вс ноя 04, 2007 15:18

2Padonak: -14- Мало использоваться будет, поскольку состояние перманетно.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Alkeeper Вт ноя 06, 2007 7:06

Muerto писал(а):2Padonak: -14- Мало использоваться будет, поскольку состояние перманетно.


И происходить должно по умолчанию -06-
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Сообщение zomzom Вс ноя 11, 2007 1:42

Если честно - я долго искал аналогичное меню, но с возможностью размещения его в ячейки таблицы сцентрированной на экране (( нету! и в общем с явавскими менюшками проблема в отношении позиционирования. На одном из форумов советов было масса, но как правило даже я - человек понимающий в CSS и Jscripte совсем децл, осознавал бредовость половины этих советов, а когда предлогал финансовое поощрение за подгонку данного меню под мои требования и обьяснения того как это получилось, тема тут же затихала.

По прошествии полутора месяца, я понял что не так уж это и легко. И если вы подскажите где я могу таки найти нужное мне меню, буду очень признателен. Или кто возьмется собрать воедино данное меню и сцентрированную таблицу.
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Muerto Вс ноя 11, 2007 1:53

Мне лень с самого начала читать топик мне лень, ссылки уже не работают. Выложи хоть скриншот того, что ты хочешь с ТЗ и посмотрим что можно сделать.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение zomzom Вт ноя 20, 2007 0:42

http://packall.ru/menu-slide/001.htm - это выходит у меня, а вот оригинальный вид но под него нужно подгонять весь сайт http://packall.ru/menu-slide/index.html
zomzom
Прохожий
 
Сообщения: 8
Зарегистрирован: Вт окт 09, 2007 21:49

Сообщение Lucia Вт ноя 20, 2007 12:03

Честно сказать, не совсем поняла. Но, по всей видимости, надо оставить рабочий вариант с position: absolute и всем блокам просто скриптом изменить left при загрузке. Позицию можно расчитать от шапки offsetLeft (правда это свойство не в DOMe). Или математически, используя скрипт Muerto.
Своего сайта пока нет, но надеюсь скоро будет.
Аватара пользователя
Lucia
Прохожий
 
Сообщения: 91
Зарегистрирован: Пн ноя 12, 2007 10:43
Откуда: Москва


Вернуться в Архив

Кто сейчас на конференции

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

cron