通过javascript增量修改CSS背景位置

时间:2012-06-08 04:03:55

标签: javascript css onclick global-variables background-position

虽然我有很多PHP编码的经验,但我很擅长使用javascript,所以我希望这个问题不会变得愚蠢。

我的目标是创建一个按钮,按下该按钮会导致定义的DIV对象中的背景位置将其背景位置改变一个像素。

我一直在谷歌以及这个网站上做了很多搜索,并按照我发现的提示我一直在玩javascript函数很多,但我似乎无法得到一个按照我需要的方式工作。

我目前的化身是这样的:

<SCRIPT TYPE="text/javascript">
var xObject = 0; // Global

function xMinus(ele) {
    xObject-=1;
    document.getElementById(ele).css({ 'backgroundPosition': xObject + 'px ' + 0 + 'px' });
}
</SCRIPT>

如果目标是单击按钮(包含onclick =“javascript:xMinus('divID');”),则背景应向左移动一个像素。

然而,当我点击它时,错误控制台给我“错误:document.getElementById(ele).css不是一个函数”。

我尝试了一些不同的变体,但总是得到类似的结果,或“变量未定义”。显然我不知道我在做什么。请帮忙!我正在为朋友编码,不想让他们等待太久。

2 个答案:

答案 0 :(得分:3)

如果你没有使用jQuery,那么

document.getElementById(ele).style.backgroundPosition = xObject + 'px ' +'0px';

答案 1 :(得分:1)

你在ele内传递了什么?它应该是元素id的字符串,不应该以数字开头。

尝试以这种方式重写代码:

var xObject = 0; // Global

function xMinus(ele) {
    xObject--;
    $('#'+ele).css({ 'backgroundPosition': xObject + 'px ' + 0 + 'px' });
}

我希望你使用的是jQuery! :)如果不使用jQuery,它应该是:

document.getElementById(ele).style.backgroundPosition = xObject + 'px ' + '0';

对于处理程序,即<a>标记,代码应为:(不应包含javascript:

<a href="#" onclick="xMinus('id'); return false;">BG Left Push!</a>