Позиционирование элемента с помощью jQuery не работает в Internet Explorer 8 - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть набор изображений внутри div, который я размещаю с помощью jQuery при загрузке страницы.

var myimg = $('#myimg');
... // Calculate x and y
myimg.css('left', x);
myimg.css('bottom', y);

Каждое изображение имеет стиль position: absolute, в то время как содержащее его div имеет стиль position: relative.

Это работает во всех браузерах, кроме Internet Explorer 8 (не пробовал 9). Изображения не получают своих позиций. Я могу подтвердить, что JavaScript работает, тем более что я также поворачиваю изображения, используя jqueryrotate , чтобы поворачивать изображения, когда я их позиционирую, и они отображаются повернутыми в IE.

Редактировать

Это полный код JavaScript. Что я конкретно пытаюсь сделать, так это расположить изображения по кругу.

var num_imgs = 14;

var angle_delta = 360 / num_imgs;

var center_x = 365;
var center_y = 245;
var radius = 230;

for (var i = 0; i < num_imgs; ++i) {
    var angle = (angle_delta * i) + 90;

    var radians = angle * 0.0174532925;
    var x = Math.round(radius * Math.cos(radians));
    var y = Math.round(radius * Math.sin(radians));

    var img = $('#myimg-' + i);
    img.rotate(90 - angle); // Only part of the code that works
    img.css('left', center_x + x);
    img.css('bottom', center_y + y);
}

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Попробуйте обернуть каждое изображение в <div> и присвойте свой идентификатор myimg# этому div, а не непосредственно изображению.Добавьте класс к каждому изображению, содержащему <div>, чтобы вы могли стилизовать их с абсолютным позиционированием сразу.

Вам нужно будет использовать небольшой обход DOM, чтобы добраться до реального изображения, но это тольковажно для плагина - просто используйте img.children('img').rotate(90 - angle) вместо img.rotate(90 - angle).Ваше позиционирование CSS будет использовать <div>.

http://jsfiddle.net/R86Ud/4/

0 голосов
/ 29 ноября 2011

Ваши значения x и y являются простыми целыми числами или имеют суффикс «px»? Они должны быть примерно 100px, а не просто 100, поэтому, если вы пропустите px, это может стать проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...