Положение DIV контейнера

12
S
На сайте с 13.08.2008
Offline
35
2865

Здравствуйте Серчевцы!

Есть такой div - подсказка

<div id="basketinfo" style=" padding:5px; background-color:#FFFF99; display:none; position:absolute; width:200px; border-style:solid; border:solid; border-width:thin;">
Товар добавлен в корзину<br><br>
<a onClick="document.getElementById('basketinfo').style.display = 'none'" style="cursor:pointer">Продолжить</a> <a href="/basket/">Перейти в корзину</a>
</div>

Есть функция показывающая этот div-подсказку при нажатии на картинку. onClick="showDIV(event)" Таиих картинок целый список уходящий вниз страницы.

function showDiv(e) {
obj = document.getElementById('basketinfo');
obj.style.display = '';
obj.style.left = e.clientX+'px';
obj.style.top = e.clientY+'px';
}

Так вот, когда я нахожусь вверху страницы, т.е. если она не прокручена вниз, все нормально, положение DIVа оказывается рядом с картинкой на которую нажимаю, стоит прокрутить страницу вниз, то при нажатии DIV вываливается выше чем нужно. Я понимаю что отсчет идет от начала страницы, как мне узнать на сколько px прокручена страница?

Sasha_l
На сайте с 22.08.2003
Offline
107
#1

может надо див подвешивать не относительно верха страницы а относительно картинки? не пробовали?

Оптимизирую и продвину ваши сайты "под ключ" (http://www.seodoktor.ru/) Skype: SeoDoktor
viКing
На сайте с 20.03.2008
Offline
124
#2

сделай позиционирование не абсолютным, а относительным. (position:relative)

относительно блока с картинкой.

S
На сайте с 13.08.2008
Offline
35
#3
viКing:
сделай позиционирование не абсолютным, а относительным. (position:relative)
относительно блока с картинкой.

Дело в том что у меня картинок с рисунком целый спиок, причем они в таблице, а DIV расположен в конце страницы под таблицей, как в этом случае использовать position:relative?

Dreammaker
На сайте с 20.04.2006
Offline
569
#4

SEOProgrammer, опробуйте вариант предложенный Sasha_l . получайте координаты картинки, а блок выводите +- сколько-то пикселей от неё.

viКing
На сайте с 20.03.2008
Offline
124
#5

а что тебе мешает добавить вывод DIV прямо в js-скрипте, в функции showDiv?

S
На сайте с 13.08.2008
Offline
35
#6
viКing:
а что тебе мешает добавить вывод DIV прямо в js-скрипте, в функции showDiv?

Что Вы имеете ввиду вывод DIV, т.е. через

document.createElement('div');
или
document.write('<div id="basketinfo">...</div>');
или еще как-то?
SEOProgrammer, опробуйте вариант предложенный Sasha_l . получайте координаты картинки, а блок выводите +- сколько-то пикселей от неё.

А как узнать координаты картинки, они не заданы явно, this.style.top = пустое значение.

Как можно еще узнать координаты?

viКing
На сайте с 20.03.2008
Offline
124
#7

я имел ввиду:

document.write('<div id="basketinfo">...</div>');

вот еще что подумал, может вам подойдет такой вариант как этот tooltip.

ну или по крайней мере подтолкнет на нужную идею, как решить вашу проблему :)

S
На сайте с 13.08.2008
Offline
35
#8
viКing:
я имел ввиду:
document.write('<div id="basketinfo">...</div>');


вот еще что подумал, может вам подойдет такой вариант как этот tooltip.

ну или по крайней мере подтолкнет на нужную идею, как решить вашу проблему :)

Спасибо, чуть позже попробую...

Но хотелось бы конечно увидеть простое решение этой проблемы, без сторонних файлов CSS и JS

Anarchist
На сайте с 23.07.2008
Offline
185
#9
SEOProgrammer:
без сторонних файлов CSS и JS

ну так засуньте это решение в уже существующие JS и CSS :)

S
На сайте с 13.08.2008
Offline
35
#10
Anarchist:
ну так засуньте это решение в уже существующие JS и CSS :)

Это не выход. Наверняка есть простой способ...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий