Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Radar от 21 Января 2003, 23:06:31

Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 21 Января 2003, 23:06:31
Всем привет!!!
У меня такой вот вопрос возник в связи с написанием выплывающего меню: а можно ли с помощью ЯС определить местоположение ячейки таблицы, вызвавшей событие? Т.е. ее какой-нибудь угол? Экранное местоположение знать бы не плохо.
Извиняююсь, если что-то напутал.
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 21 Января 2003, 23:14:23
Цитировать
определить местоположение ячейки таблицы, вызвавшей событие?
какое событие?
Задачу не очень я понял, но ИМХО
Цитировать
каком месте экрана расположена ячейка
определить нельзя.
Название: в каком месте экрана расположена ячейка?
Отправлено: Жук от 21 Января 2003, 23:17:21
Экранное положение можно назначать при помощи слоев.
Для этого нужно обозначить необходимые элементы как слой и при помощи свойств определить его положение на экране.
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 21 Января 2003, 23:23:47
по ячейке таблицы щелкают мышей, вот бы определить где эта ячейка находится, чтобы знать от чего плясать при определении координат выпадающего меню.
А проблема вот в чем. Написал (вернее содрал) меню. Оно работает. Но при вставке его в тело страницы в таблу, выпадающее меню появляется не там, где хотелось бы.
Вопрос, наверное, следующий: как это выпадающее меню работает у других в теле страницы? Как оно определяет, что выпадать-то надо относительно этого тега?
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 21 Января 2003, 23:34:03
почитай где-нибудь про объект Event. Такие задачи с его помощью решаются.
например event.x event.y - текущие координаты мыши. По ним и определяеш где менюшку отобразить
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 21 Января 2003, 23:38:43
Интересно, а у тега STYLE свойство position имеет какое-то еще значение кроме absolute?
Жук, а лаеры работают в IE?
Название: в каком месте экрана расположена ячейка?
Отправлено: Жук от 21 Января 2003, 23:44:19
Цитировать
Интересно, а у тега STYLE свойство position имеет какое-то еще значение кроме absolute?
Жук, а лаеры работают в IE?

Имеет. relative, если не ошибаюсь.
Слои работают и в IE и в NN, но используют разные теги. В IE используется
, а в NN . Есть еще небольшие отличия.
Обычно определяют скриптом браузер и в зависимости от результата выдают тот или иной код.
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 21 Января 2003, 23:51:55
Про слои нашел кое-что...
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 21 Января 2003, 23:54:57
Цитировать
Обычно определяют скриптом браузер и в зависимости от результата выдают тот или иной код.
а еще есть кроссброузерные библиотеки для работы со слоями, типа klayers. Кстати для NN тоже можно div использовать (только там какие-то параметры недоступны, если я ничего не путаю)
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:01:31
Т.е. теперь получается, что я буду вычислять позиции, в которые следует помещать выплывающее меню относительно слоя?
Т.е. в тег лаер я помещаю изображение, при наведении на которое мышкой, появляется всплывающее меню. Это всплывающее меню будет позиционироваться относительно лаера изображения или опять относительно всей страницы? Не приду ли я опять к тому же от чего хочу уйти?
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 22 Января 2003, 00:07:19
нет, меню в слой положи (оно у тебя и так в слое скорее всего) а через Event определяй где его (слой) показывать. ИМХО так (если я все правильно понял)
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:09:35
Да, насчет билиотек, это круто... Но мне до них пока далековато.
Если position это абсолютное позиционирование элемента, то relative что дает?
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:15:25
а можно показать слой относительно таблицы (ячейки), а не относительно страницы (экрана), потому что фиг его знает, где он (слой этот) может появиться на экране в составе всей страницы?
Название: в каком месте экрана расположена ячейка?
Отправлено: Жук от 22 Января 2003, 00:19:48
Цитировать
Да, насчет билиотек, это круто... Но мне до них пока далековато.
Если position это абсолютное позиционирование элемента, то relative что дает?

relative - относительное. То есть, если разрешение экрана разное, то absolute может при другом разрешении не там показываться. Если же relative, то координаты считаются в относительных единицах и по идее должны одинаково выглядеть при разных разрешениях.
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 22 Января 2003, 00:22:47
Юзер кликает по экрану. Ты отслеживаеш это событие и определяеш координаты мыши. Далее в эти координаты перемещаеш слой с меню и показываеш.
Типа
menu_layr.style.left = Event.x;
menu_layer.style.top = Event.y;
(это не рабочий код, просто написал чтобы идею показать)

Это я просто объяснил, на самом деле еще нужно проверить, не будет ли меню выходить за рамки окна
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:29:55
наверное с координатами еще нужно что-то сделать, а что допереть не могу, иначе ведь если просто размещать относительно этих координат, то ведь выплывающее меню скакать будет?
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:32:37
или, блин, эти event.x и event.y определяют координаты слоя, вызвавшего событие!!!?
Название: в каком месте экрана расположена ячейка?
Отправлено: Жук от 22 Января 2003, 00:33:35
Приведи сюда код. Понятней будет для разбора.
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 22 Января 2003, 00:35:07
Жук
relative - координаты рассчитываются относительно родиетльского слоя (на случай вложенных слоев) AFAIK

Radar
в смысле плавно перемещать? или что делать?
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 22 Января 2003, 00:36:34
Цитировать
или, блин, эти event.x и event.y определяют координаты слоя, вызвавшего событие!!!?
координаты курсора мыши?
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:37:19
а лаеры в теги ТАБЛЕ определять моно?
Название: в каком месте экрана расположена ячейка?
Отправлено: Макс от 22 Января 2003, 00:39:03
Цитировать
а лаеры в теги ТАБЛЕ определять моно?
да. А зачем ?
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:53:59
нет, они должны просто появляться при наведении мышкой на изображение-это просто картинка-прямоугольник. Когда я разместил эти главные меню из которых должны выпадать другие на странице сайта в строке-ячейке таблицы (а как иначе?), эти вываливающиеся меню мои "потеряли ориентацию". У меня было абсолютное позицинонирование и координаты меню высчитывалсь относительно коодинат главных менюшек. При помещении в таблицу, естественно координаты главных менюшек изменились, я не могу их определить. Это позиционирование главных менюшек:
  STYLE="position:absolute;
        left: 10;
        top: 10"
        onmouseover="return showMenu(WoodMenuDiv)"
        onmouseout="return hideMenu(WoodMenuDiv)">

это функция показа меню:
function showMenu(menuToShow)
{
 var srcElement=event.srcElement;
 var xPos=parseInt(srcElement.offsetLeft);
 var yPos=parseInt(srcElement.offsetTop);
 menuToShow.style.left=xPos+10;
 menuToShow.style.top=yPos+20;

Надо писать, используя слои?
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 00:56:18
А чтобы вычислить координаты ячейки таблицы.
Вот какая у меня "грандиозная идея"!
Название: в каком месте экрана расположена ячейка?
Отправлено: Radar от 22 Января 2003, 13:46:31
Извиняюсь за вчерашнее исчезновение со страницы форума.
Значит, лаеры.