Почему я не могу анимировать backgroundPosition мимо jquery 1.4.4? - PullRequest
3 голосов
/ 29 декабря 2011

Я вижу здесь , что отсутствие анимации backgroundPosition в jquery 1.5.0 является известной ошибкой.Это все еще не исправлено?

Посмотрите это jsfiddle , с анимацией backgroundPosition в jquery 1.4.4, а затем посмотрите на этот один и увидите, чтоэто не работает даже в jquery 1.7.1.

Есть идеи, когда они собираются это исправить?

Мне интересно, потому что я только что увидел предупреждение в своей консоли Chrome, в котором говорится:

event.layerX и event.layerY повреждены и устарели в WebKit.Они будут удалены из движка в ближайшем будущем.

Я беспокоюсь, что собираюсь продолжать использовать jquery 1.4.4 для функциональности анимации, но тогда Chrome потянет функциональностьв следующем обновлении.

ОБНОВЛЕНИЕ

Принятый ответ, идея использовать background-position-x и y не работает с Firefox.Сейчас мне придется вернуться к 1.4.4, пока я не найду лучшее решение.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011

Вам нужно указать background-position-x и -y отдельно, например так:

$('div').animate({
  'background-position-x': '-6000px', 'background-position-y': '-200px' }, 4000);

Рабочий пример. (jQuery 1.7.1)

В качестве примечания, поскольку ваш background-position-y не меняется, вы можете просто пропустить эту дополнительную строку и просто изменить -x.

1 голос
/ 16 апреля 2012

У меня возникла та же проблема: эффект "клуб дыма" анимация javascript sprite

Кажется, что более новые версии jQuery выше 1.4.4 позволяют использовать плавные эффекты прокрутки фона за счетнарушение анимации спрайтов, которые на самом деле отрывисто полагаются на постоянство видения.Я бы сказал, что функция animate не была предназначена для этого, но тогда она просто работала (TM).

Чтобы сделать свою анимацию спрайтов в фоновом режиме, я написал функцию, используя setTimeout

http://jsfiddle.net/Y7Ek4/22/

Это более низкий уровень, но совсем немного кода.

...