Получение значений X и Y изображения в IE с помощью javascript?

#javascript #image #position

#javascript #изображение #положение

Вопрос:

Я долго искал это в Google, но, похоже, никто не решает то же самое. Я довольно новичок в javascript, поэтому мой вопрос может быть глупым, заранее извините.

Я работаю над скриптом, который найдет все изображения на сайте и вернет набор параметров для каждого, включая положение изображения по x и y.

В FF и Chrome свойства obejct.x и object.y работают нормально, но в IE я получаю значение ‘undefined’. Знаете ли вы о каком-либо способе, которым я мог бы заставить IE возвращать мне положение изображений по X и Y? Это может быть даже относительно его родительского div, поскольку мне не нужно знать абсолютную позицию на странице.

Кроме того, я заметил, что есть разница в том, как FF и Chrome подсчитывают координаты, когда для положения изображения установлено значение relative. Chrome, похоже, считает это неправильно, поскольку на самом деле возвращает только верхнее и левое значения, в то время как FF корректно добавляет верхнее и левое значения к исходным значениям положения. Было бы неплохо, если бы вы знали трюк и для этого.

Хотя я полагаю, что в данном случае это не требуется, я прилагаю определенную часть кода.

функция showPos() {

 var imgs;
imgs = document.getElementsByTagName('img');

for(i=0; i<imgs.length; i  )
{
   alert(imgs[i].x   imgs[i].y);
}
  

}

Заранее спасибо и отличных каникул! Якуб

Ответ №1:

Вы могли бы заглянуть в библиотеку jQuery — у них есть кроссбраузерное решение для нахождения координат изображения. Вы можете использовать .offset(), чтобы найти положение относительно документа, или .position(), чтобы найти его относительно родительского параметра смещения.

Комментарии:

1. Это сложный способ заставить работать x-браузер, поэтому используйте что-нибудь, где это уже было выяснено 🙂

Ответ №2:

Вы пробовали свойства изображений offsetTop и offsetLeft?

Пример

Комментарии:

1. Большое вам спасибо, offsetTop и offsetLeft работают во всех браузерах и более того, они ведут себя одинаково во всех из них.