2012-03-22 79 views
1

你好我试图让我的背景上下使用jQuery中的.animate()和.hover()方法动画。在我的DOM中,我有一个ID为“#menu”的div,其中包含一个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 2012-03-23 02:17:02

回答

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

nope,不起作用,这里的错误是当我把加法运算符我得到一个错误,xPos值返回为“0px”就好,但它没有将x和y值结合在一起。如果我用例如“20px”+“0px”替换xPos,它仍然给我无法读取属性'1'的空值“ – 2012-03-23 01:45:16

1

我发现了问题是变量,当我检查lert(typeof xPos)它返回未定义。我需要将此答案转换为一个整数值只。