2012-06-13 56 views
6

我认为我的最后一个问题,大家都不堪重负,所以我将简化jQuery的背景变化一轴只

我试图只改变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点击“完成”。我们得到了它与直播网站上一些疯狂的复杂脚本的工作,但我会离开这里了这件事反正因为我还是真的想找到一个解决这个问题

回答

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" 
    }); 
} 
+0

嗯...我把代码替换了但似乎没有工作。如果html调用仍然onClick =“colorChangePiano()”? –

+0

当你需要它执行时,你肯定需要调用这个函数!我也不确定应该插入哪些值,所以如果您不想按像素对齐,请更改为%。 – TheHippo

+0

哈哈当然!但这仍然是正确的要求,对吧?只是想确保它不工作,因为html –

5

这是我该怎么做的。

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

原谅我,如果这是一个愚蠢的问题,但我是一个JavaScript的宝贝。我如何在HTML中调用这个? –

+2

你真的可以在那里放置一个功能吗?我直到现在才知道。谢谢。 –

+0

@alex我仍然想知道你会怎么称呼它。我没有看到一个名为anwyhere的函数名以包含在''标签 –