Если вы проверяете jQuery animate page вы можете прочитать, что:
Animate
Все анимационные свойства s hould быть анимированным до единственного числового значения, за исключением случаев, указанных ниже; большинство свойств, которые не являются числовыми, не могут быть анимированы с использованием базовой функциональности jQuery (например, ширина, высота или левый могут быть анимированы, но фоновый цвет не может быть, если не используется плагин jQuery.Color()).
Это, как указано, используется в качестве фона для использования 2 значения. Решение состоит в объединении значения.
Вот как *:
$(this).animate({
'background-position-x' : '-50px',
'background-position-y' : '10px'
}, 200);
* Я, возможно, перевернутый ваши 2 значения, я не помню, которым один x
и Wich один является y
.
EDIT
С светлячками поддержки оленьей кожей background-position-x
и y
, вот кодом, чтобы исправить:
var pos = {x : '', y : ''};
$('a').click(function(){
var that = $(this);
that.animate({
'background-position-x' : '-50px',
'background-position-y' : '10px'
},{
duration : 200,
step : function(a,b){
if(b.prop == "backgroundPositionX"){
pos.x = a + b.unit
}else if(b.prop == "backgroundPositionY"){
pos.y = a + b.unit
}
},
progress : function(){
that.css('background-position', pos.x + ' ' + pos.y);
}
});
});
Возможный дубликат [анимация backgroundPosition] (http://stackoverflow.com/questions/6380904/animate-backgroundposition) –
Используете ли вы какой-либо плагин? –
Для того, что стоит, GSAP может справиться с этим для вас либо в его автономной форме, либо вы можете загрузить его плагин jQuery, и ваш код выше будет работать нормально (никаких специальных исправлений не требуется, потому что модные ножки выполняются под капотом, в том числе совместимость со старыми вкусы IE). http://www.greensock.com/gsap-js/ – Jack