2012-08-13 49 views
1

我有这段代码。用.animate替换这个jQuery .css()函数()

jQuery("#box").bind('mousemove', function(e){ 
     jQuery(".mousetail").css('background-position-x', (e.pageX - this.offsetTop - 437)+'px'); 
}); 

这使得鼠标跟随光标。但是当我将鼠标放在盒子上(远离鼠标尾部)时,鼠标尾部会立即出现在该位置。我希望它通过动画到达那里。 另外,background-position-x在Firefox中似乎不起作用。有人可以告诉我在代码中使用background-position:0px *based on co-ord*的正确方法(我不知道正确的语法)

+0

请提供一个小提琴。^_^ – 2012-08-13 18:31:56

回答

2

的语法非常相似,它需要一个CSS参数,那么持续时间参数,则回调(在动画完成时要执行什么)

jQuery(".mousetail").animate({ 
    'background-position-x' : (e.pageX - this.offsetTop - 437)+'px' //Use Colon instead of comma 
    }, 300, //This number sets the duration of the animation 
    function() {alert('animation complete!');} //Callback function 
); 
+0

第一次移动后(如果正常),如果我再次将鼠标移动到新的位置,鼠标移动速度会非常缓慢3秒左右,然后快速滑动到新的位置。任何想法为什么发生这种情况 – rzr 2012-08-13 18:51:59

0

你试过吗?

jQuery("#box").bind('mousemove', function(e){ 
    jQuery(".mousetail").animate({'background-position-x': (e.pageX - this.offsetTop - 437)+'px'}); 
}); 
+2

您是否尝试过?这不是调用'.animate()'的正确方法' – MrOBrian 2012-08-13 18:40:19

+0

哎呀!我习惯于为'$ .css({})'传递一个对象,我甚至没有检查参数。我的错。正在修正... – 2012-08-13 19:03:25