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

Относительное позиционирование с 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 представляется). Может быть есть путь спозиционировать элемент без прописывания всех версий «глючащих» браузеров?
  • Вопрос задан
  • 4734 просмотра
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 3
Vasya_Sh
@Vasya_Sh
В jQuery все нормально, изменилась интерпретация хрома, теперь он не компенсирует скроллинг.
Ответ написан
Комментировать
@aleXoid Автор вопроса
Это общехромовское или нововведения в webkit?
Ответ написан
Комментировать
Mithgol
@Mithgol
Попробуйте использовать (с соответствующими изменениями) метод $(…).position() вместо метода $(…).offset(), если это позволяют условия задачи.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽