Сведения о вопросе

Ayrat

19:23, 15th August, 2020

Теги

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

Просмотров: 338   Ответов: 3

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

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

...

var mytop = image.offset().top - (container.height() /2) + image.height()/2 + $(document).scrollTop();
var myleft = image.offset().left - (container.width() /2 ) + image.width()/2 + $(document).scrollLeft();

if($.browser.msie){
mytop = image.offset().top - (container.height() /2) + image.height()/2;
myleft = image.offset().left - (container.width() /2 ) + image.width()/2;
}

container.offset({top: mytop, left: myleft});
container.show();

...


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

Буквально вчера то ли Chrom обновился, то ли jQuery (подгружает последний из Google CDN), но Chrome стал добавлять scroll (может он IE представляется). Может быть есть путь спозиционировать элемент без прописывания всех версий «глючащих» браузеров?



  Сведения об ответе

SEEYOU

00:44, 1st August, 2020

В jQuery все нормально, изменилась интерпретация хрома, теперь он не компенсирует скроллинг.


  Сведения об ответе

qwerty101

18:11, 22nd August, 2020

Это общехромовское или нововведения в webkit?


  Сведения об ответе

qwerty101

11:35, 7th August, 2020

Попробуйте использовать (с соответствующими изменениями) метод $(…).position() вместо метода $(…).offset(), если это позволяют условия задачи.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться