2011-05-05 42 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