6

私の最後の質問は皆を圧倒したと思うので、簡単に説明します

x 軸のみの背景位置を変更しようとしています。デフォルトでは、値が 1 つだけ定義されている場合、もう一方のデフォルトは に設定される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

background-position2 つの値を(予想どおり)に追加します。また、現在の位置を変数に保存すると、これが簡単になります。

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 に答える