2012-08-28 69 views
1

可能重複:
jquery.animate background-position doesn't workjQuery背景位置在FireFox中不起作用?

我有一個小腳本,動畫背景的位置,遺憾的是它不工作在Firefox。
它適用於IE和Chrome。

$('#background').animate({ 
    'background-position-x': -1020 
}); 

爲什麼它在FireFox中不起作用?
在此先感謝!

+1

你可以嘗試一下這個http://stackoverflow.com/questions/6322347/jquery-1-6-backgroundposition-vs-backgroundpositionx-and-ff4-compatibility – Chandrakant

回答

4

你總是可以創建自己的小插件,它不是硬。

使用jQuery 1.8,我們現在有機會獲得$ .Animation方法,讓我們的動畫值的情況下直接到很多工作,所以我們可以這樣做:

$.fn.animateBG = function(x, y, speed) { 
    var pos = this.css('background-position').split(' '); 
    this.x = parseInt(pos[0]) || 0; 
    this.y = parseInt(pos[1]) || 0; 
    $.Animation(this, { 
     x: x, 
     y: y 
     }, { 
     duration: speed 
     }).progress(function(e) { 
      this.css('background-position', e.tweens[0].now+'px '+e.tweens[1].now+'px'); 
    }); 
    return this; 
} 

然後使用它我們可以這樣做:

$("#background").animateBG(x-value, y-value, speed);​ 

活生生的例子: $( 「#背景」)。animateBG(「0像素」,「-45px」,300);

FIDDLE

免責聲明:這不是一個成品和測試插件,但是這是我花了十分鐘的jsfiddle創建,但測試出來做你需要的改變,它應該適合你。

0

火狐不支持background-position-xbackground-position-y。您應該編寫一個簡單的函數來計算當前的x和y位置以及所需的位置,並使用setTimeout$(el).css對其進行動畫處理。或者使用CSS3動畫。

P.S. 對不起,對我以前的帖子。

+1

然後再次,動畫不接受兩個值! – adeneo

+0

編輯的代碼,這應該會幫助你:)在字符串中使用值 –

+0

你甚至在發佈之前測試這些東西嗎? – adeneo