Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   появление div (https://javascript.ru/forum/events/19429-poyavlenie-div.html)

RogerUP 04.08.2011 01:33

появление div
 
на некоторую картинку поставлены
table_title.childNodes[i].childNodes[j].childNodes[0].setAttribute('onmouseover', 'show('+i+','+j+')')
		table_title.childNodes[i].childNodes[j].childNodes[0].setAttribute('onmouseout', 'show('+i+','+j+')')

как сделать так, чтобы появляющийся по функции
function show(i,j) {
	table_title.childNodes[i].childNodes[j].childNodes[1].style.display = (table_title.childNodes[i].childNodes[j].childNodes[1].style.display == 'none') ? 'block' : 'none';
}

div был всегда в области окна и не выезжал за его пределы.
была задумка прописать для всех div-ов маргины (благо дивов 15), но может есть более легкий путь?

artnik 05.08.2011 14:05

Не совсем понятен Ваш вопрос. Может css position:fixed подойдет?

RogerUP 05.08.2011 15:43

artnik, объясняю: страница полностью заплнена таблицей с картинками. При наведении уазателя на картинку, появляется всплывающая подсказка с информацией, которая немного смещена от картинки вправо и вниз. При наведении указателя на крайнюю правую картинку, подсказка уходит дальше вбок и приходится прокручивать страницу, чтобы ее прочитать. Такая же проблема с нижними элементами: половина подсказки уходит вниз, и приходится опять прокручивать страницу.
Позиция стоит абсолютная, тк если будет фиксированая, то подсказка будет прокручиваться вместе со страницей.
Смещение делал с помощью выставления маргинов сверху и слева.
Как решить эту проблему, кроме прописывания отдельных значений маргинов у правых и нижних элементов?

artnik 05.08.2011 16:29

ну тут нужна вычеслительная работа. Нужно поставить условие, приблизительно так:
if ((popup.offsetLeft + popupWidth) > windowWidth)  { // если отступ от границы экрана слева + ширина попапа больше чем ширина экрана

   var x = windowWidth - (popup.offsetLeft + popupWidth); // узнаем насколько пикселей попап ушел вправо

}


После того как узнали на сколько попап вылез за экран, можно отнять енто значение от css left проперти


Часовой пояс GMT +3, время: 23:08.