2012-03-22 4 views
1

Привет, я пытаюсь сделать мой фон анимированным вверх и вниз с использованием методов .animate() и .hover() в jQuery. В моем DOM у меня есть div с id = "# menu", который содержит список UL, у каждого из которых есть фон в разных положениях x, но в той же позиции y. Моя дилемма по какой-то причине моя переменная не работает. его возвращаться как ошибка «не может прочитать свойство„1“нулевого значения, которое означает, что оно не существуетФоновая позиция Переменная не работает

Вот мой код:.?.

$("#menu li").hover(
function() { 
var xPos = $(this).css('background-position-x') 
$(this).animate({backgroundPosition: "("+ xPos + "0px)"}, 500); 

     } 
, 
function() { 
    var xPos = $(this).css('background-position-x') 
$(this).stop().animate({backgroundPosition: xPos + "35px"}, 500); 

      } 
); 
+0

У вас есть исходное положение, первоначально заданное в CSS? – jessica

ответ

0

Вы можете попробовать это может быть помочь вам

Собственно значение по умолчанию:. 0% 0% В Css свойства фона

$("#menu li").hover(
function() { 
var xPos = $(this).css('background-position') 
$(this).animate({backgroundPosition: "("+ xPos + "0px)"}, 500); 

     } 
, 
function() { 
    var xPos = $(this).css('background-position') 
$(this).stop().animate({backgroundPosition: xPos + "35px"}, 500); 

      } 
); 
+0

Нет, это не работает, ошибка здесь, когда я положил оператор сложения, я получил ошибку, значение xPos возвращается как «0px» просто отлично, но не объединяет значения x и y вместе. Если я заменю xPos на, например, «20px» + «0px», он все равно дает мне возможность не читать свойство «1» нулевого значения » –

1

я выяснил, что проблема с переменной, когда проверяю lert (typeof xPos) возвращается как неопределенное. Мне нужно преобразовать этот ответ только в целочисленное значение.