jquery背景只改变一个轴

我认为我的最后一个问题压倒了所有人,所以我会简化

我试图仅改变x轴的背景位置。 默认情况下,如果只定义了一个值,则另一个默认为50% ,因此此函数:

 function colorChangePiano() { var bp = $("background-position").css; $("#target").css('background-position', (bp == -1131) ? '-377' : '0'); } 

返回background-position: 0 50% ;

如何修改function以更改x轴但保持y轴不变?

编辑 – >这是一个4列4行精灵,因此y轴应保持动态。 工作现场: http : //www.avalonbyeaw.com点击“完成”。 我们在现场网站上使用了一些疯狂复杂的脚本,但是无论如何我都会把它留在这里,因为我仍然真的想找到解决这个问题的方法

这是我怎么做的。

 $('#target').css('background-position', function(i, backgroundPosition) { return backgroundPosition.replace(/\d+px/, '60px'); }); 

将2个值添加到background-position (按预期)。 同时将当前位置保存在变量中,这样可以更容易。

 var pos = -377; var colorChangePiano = function() { if (pos == -377) { pos = -1131 } else { pos = -377 } $('#target').css({ 'backround-position': pos + 'px 0px' // will result in "Xpx 0px" }); }