6

我认为我的最后一个问题让每个人都不知所措,所以我将简化

我正在尝试仅更改 x 轴的背景位置。默认情况下,如果只定义一个值,另一个默认为50%,所以这个函数:

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

返回背景位置:0 50%

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

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

4

2 回答 2

5

这就是我将如何做到的。

$('#target').css('background-position', function(i, backgroundPosition) {
    return backgroundPosition.replace(/\d+px/, '60px');
});
于 2012-06-13T01:04:28.920 回答
2

将 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"
  });
}
于 2012-06-13T00:38:20.140 回答