Как найти фоновое положение/фоновое изображение и т.д. Для нескольких фонов с помощью jQuery в Safari
Возможно, я что-то пропустил.
Я пытаюсь получить текущую справочную информацию для элемента (div
) с несколькими фонами, задав с помощью longhand background-repeat
, background-position
и background-image
.
Используя jQuery, я просто делаю var bPos = $('#element').css('background-position')
, чтобы получить набор текущих позиций, что даст мне что-то вроде '0 0, 100px 100px, left bottom'
в Firefox и Chromium (в настоящее время версии 5 и 12 соответственно), но в Safari (версия 5 в ОС -X) он просто возвращает первую пару значений ('0 0'
). Эти значения CSS устанавливаются во внешней таблице стилей.
Есть ли у кого-нибудь идеи, почему это так, и как это сделать, чтобы получить полный набор пар значений в Safari (с использованием стенографического свойства background
тоже не выполняется)?
Edit:
Вот CSS, который используется во внешней таблице стилей:
#page{
background-repeat: repeat-x, repeat-x, repeat-x, repeat-x, repeat-x;
background-image: url('../images/line.png'), url('../images/line.png'), url('../images/line.png'), url('../images/line.png'), url('../images/line.png');
background-position: 0 798px, 0 653px, 0 125px, 0 88px, 0 78px;
}
Edit:
Хорошо, я сделал тестовый пример для этого jsFiddle и сообщил об этом как jQuery bug, поскольку он кажется воспроизводимым (хотя я согласен с тем, что это может быть проблема реализации браузера, а не ошибка jQuery).
Тем не менее, если у кого-то есть идеи...
Edit:
Билет jQuery закрыт - я полагаю, это означает, что это ошибка Safari - я не совсем уверен, как идти дальше отсюда, но я опубликовал отчет об ошибке с Apple.
Edit:
Как указал Синдре Сорхус, это, похоже, было исправлено в Safari 5.1.
Ответы
Ответ 1
Так как он исправлен в 5.1, я думаю, что это не большая проблема, но я блуждаю, если в качестве обходного пути вы могли бы сначала установить фон из js на
$('#page').attr('style', '...');
а затем прочитайте его оттуда...
своего рода глупость и боль в заднице, да.
Ответ 2
Использовать плагин Background Background JQuery.
http://www.webinventif.fr/jquery-background-position-mettez-du-mouvement-dans-votre-background/
Ответ 3
Вы можете попробовать использовать разные классы. Это будет easiler.