2011-05-05 75 views
1

這裏可能是一個簡單的問題(我希望),但我的大腦剛剛停止工作。使用Javascript更改背景位置CSS - 小問題

我有此javascript:

 value.obj.css('background-position', value.xStart + 10) 

,其改變在x方向我的對象的背景位被10。

但是我也希望能夠改變在y方向上的位置,但在一個不同的量(即,40)。的代碼被「value.yStart + 40」在CSS

背景位置是這樣寫「背景位置:30 30;」。當我使用上面的JavaScript來改變它時,它會出現「背景位置:40 50%;」但我希望它是「背景位置:40 70;」請幫助...漫長的一天:)

+0

什麼JS庫您使用? – Neal 2011-05-05 15:50:47

+0

你在使用框架嗎? '.css(...)'不會讓我成爲一個標準的JS函數。 – 2011-05-05 15:51:28

+0

您需要在定義CSS屬性時使用度量。否則,如果你有'background-position:30 30;'瀏覽器不知道30是什麼。它是px嗎?它是時間嗎?如果你使用的是JS框架,它可能會自動處理,但你需要檢查API文檔。 – scurker 2011-05-05 15:56:39

回答

2

我會用:

value.obj.css({ 'background-position': (value.xStart + 10) + 'px ' + (value.yStart + 40) + 'px' }); 
+0

jeroen,你是明星!完美的作品,謝謝! – Chris 2011-05-05 17:32:35

0

那麼不要告訴人們如何background-position的作品,因爲你得到它有點不對勁。

無論您使用%px: 這樣:

background-position: 30px 30px; 
//or: 
background-position: 30px 30%; 
//or even: 
background-position: 30% 30%; 
+0

對不起,我忘了提及'px',但我不認爲這與我的問題有關,因爲無論是px,em還是百分比,問題都是將兩個值傳遞到背景位置。目前它只傳入一個(正常工作) – Chris 2011-05-05 16:47:33

0

實際上,它必須是backgroundPosition(所有的CSS屬性都是​​駱駝在jQuery的套管),並在你的情況應該是:

.css('backgroundPosition', '30px 30px')

.css({ 'backgroundPosition': '30px 30px' })

+0

奇怪的是,它實際上與.css('background-position','30px 30px') – Chris 2011-05-05 17:01:56

+0

一起工作。您是對的,我在支持這兩種方式的文檔中進行了檢查http://api.jquery.com/css/。 – morgar 2011-05-05 17:11:06