【问题标题】:Adding amount to background-position on click (jQuery)在点击时添加数量到背景位置(jQuery)
【发布时间】:2010-01-22 13:50:04
【问题描述】:

我对 js 和 jquery 还很陌生,所以请多多包涵。

我想更改背景位置并在单击#button1 时在#div1 上添加1%,并在单击#button2 时在#div1 上添加-1%

我如何在 jQuery 中实现这一点?

另外,奖金问题: 这些将通过 php 动态生成。是否可以在 js-script 中使用 php 以使 id 正确?

像这样:

$i = 1
while($i <= 5):
 $div[$i] = 'div'.$i;
 $leftbutton[$i] = 'leftbotton'.$i;
 $rightbotton[$i] = 'rightbotton'.$i;
$i++;
endwhile;

否则我必须学习如何在 js 中制作循环;)

编辑:跟进问题:

如何在单击按钮时使用此值更新文本字段?如果我还想添加向上/向下按钮,我该如何修改它?非常感谢!

提前致谢! -西蒙

【问题讨论】:

  • 您要更改哪个坐标? (X 或 Y)
  • 实际上对于一页来说只是左/右,但对于另一页来说,向上/向下是单独的按钮。没有提到这一点,因为我想如果我得到第一个答案,我就能弄清楚其余的,但现在我不太确定了;)

标签: php javascript jquery css background-position


【解决方案1】:

像这样:

function makeClicker(index) {
    $('#leftbutton' + index).click(function() {
        var bPos = $('#div' + index).css('background-position');
        bPos = bPos.replace(/%/g, '').split(' ');
        bPos = (-1 + parseInt(bPos[0], 0)) + '% ' + bPos[1] + '%';
        $('#div' + index).css('background-position', bPos);
    });
    $('#rightbutton' + index).click(function() {
        var bPos = $('#div' + index).css('background-position');
        bPos = bPos.replace(/%/g, '').split(' ');
        bPos = (1 + parseInt(bPos[0], 0)) + '% ' + bPos[1] + '%';
        $('#div' + index).css('background-position', bPos);
    });
}

for(var i = 1; i <= 5; i++)
    makeClicker(i);

编辑:修正错误。

Demo

【讨论】:

  • 我不知道。这会采用当前值并增加或减少(显然不是百分比,就像我问的那样,而是以像素为单位)?
  • 谢谢!虽然无法让它工作。这是我要更改样式的元素的代码: 由于图像是动态获取的,因此需要内联样式。
  • 跟进问题(如果您有时间):如何在单击按钮时使用此值更新文本字段?如果我也想添加向上/向下按钮,我该如何修改它?非常感谢!
  • 回复 #1:$('.myDivElement').text('Position: ' + bPos);。回复 #2:bPos[0] 是 X,bPos[1] 是 Y。您需要将 (1 +parseInt( 移动到 bPos[1]
  • 再次感谢,现在一切正常!虽然我不得不在 #1 中使用
    $('.myDivElement' + index).attr("value", bPos);
猜你喜欢
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
相关资源
最近更新 更多