Задать вопрос

Относительное позиционирование с jQuery?

Помогите спозиционировать элементы относительно друг друга с учетом скроллинга в разных браузерах.



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



...<br/>
<br/>
var mytop = image.offset().top - (container.height() /2) + image.height()/2 + $(document).scrollTop();<br/>
var myleft = image.offset().left - (container.width() /2 ) + image.width()/2 + $(document).scrollLeft();<br/>
<br/>
if($.browser.msie){<br/>
 mytop = image.offset().top - (container.height() /2) + image.height()/2;<br/>
 myleft = image.offset().left - (container.width() /2 ) + image.width()/2;<br/>
}<br/>
<br/>
container.offset({top: mytop, left: myleft});<br/>
container.show();<br/>
<br/>
...<br/>




Т.е. смотрим координаты текущего элемента, и если браузер IE, то добавляем высоту/ширину скроллинга.



Буквально вчера то ли Chrom обновился, то ли jQuery (подгружает последний из Google CDN), но Chrome стал добавлять scroll (может он IE представляется). Может быть есть путь спозиционировать элемент без прописывания всех версий «глючащих» браузеров?
  • Вопрос задан
  • 4711 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Vasya_Sh
@Vasya_Sh
В jQuery все нормально, изменилась интерпретация хрома, теперь он не компенсирует скроллинг.
Ответ написан
Комментировать
@aleXoid Автор вопроса
Это общехромовское или нововведения в webkit?
Ответ написан
Комментировать
Mithgol
@Mithgol
Попробуйте использовать (с соответствующими изменениями) метод $(…).position() вместо метода $(…).offset(), если это позволяют условия задачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы