2012-03-05 162 views
0

我一直在試圖動畫背景位置從一個div移動。該div有背景,有這樣的事情:如何使用jQuery爲背景位置設置動畫效果?

<div class="uppermenu" style="background-position: 0px -80px;"></div> 

所以,它工作正常,當我作出了mouseenter我想改變背景位置動畫這使得它像背景位置:0像素0像素,但它不起作用......我可以改變顏色和所有,但我不能移動背景。有沒有辦法做到這一點?

我已經試過這樣:

jQuery(this).children(".uppermenu").animate({"background-position": "0 85px"}, "slow"); 

而且也是這樣:

jQuery(this).children(".uppermenu").animate({ 
    'background-position-y': '45px', 
    'background-position-x': '0px' 
}, 100, 'linear'); 

他們都沒有改變我的立場。哪裏不對?

+0

你爲什麼要附加動畫DOM的子對象,而不是僅僅使用' $( 'uppermenu')。animate'? – shanabus 2012-03-05 19:56:58

+0

,因爲我正在做一個mouseenter到父元素上...所以,我需要在子元素上製作動畫.... – jpganz18 2012-03-05 20:00:21

回答

1

的動畫背景位置的語法是:

.animate({backgroundPosition:"(-20px 94px)"}); 

您也可以使用這個插件在http://archive.plugins.jquery.com/project/backgroundPosition-Effect

+0

謝謝,我也試過這種方式,仍然不起作用,我要檢查插件。 – jpganz18 2012-03-05 19:56:39

+1

你必須使用插件,因爲jQuery不能同時動畫x和y屬性。這裏有一個[更好的解釋](http://snook.ca/archives/javascript/jquery-bg-image-animations)。 – 2012-03-05 22:11:37

+0

這是一個很好的例子...謝謝,它的工作很棒! – jpganz18 2012-03-06 00:36:39

相關問題