2010-05-06 29 views
13

给定一个具有未知余量的元素,如何增加它的余量,数字为100px?如何通过jquery增加/减少当前保证金数量?

例如:

假设原始保证金左是100像素

预期的结果是100像素100像素+从而终于200像素。

+0

取的电流值,加100,写回?你的问题是关于如何获取当前值? – 2010-05-06 14:38:23

回答

30
$('#element-id').css('margin-left', function (index, curValue) { 
    return parseInt(curValue, 10) + 100 + 'px'; 
}); 

curValue将包括在年底“像素”,所以你会NaN100px100px为你的结果最终没有使用parseInt第一。

+0

这正是我想要的 – Edward 2010-05-06 14:53:17

+0

+1您的回答是典范。谢谢! – 2012-07-02 14:46:21

+0

为了安全起见,您可以在添加之前确保您目前有一些边距。 'var actualMargin = parseInt(curValue); (isNaN(actualMargin)){ actualMargin = 0; }' – Melanie 2016-03-30 22:27:00

19

快速/简洁的方式做到这一点:

$('#IDHere').animate({marginLeft: '+=100px'}, 0); 

Here's a quick example of this0在单个帧中发生这种情况,如果实际上要为其设置动画效果,请将0更改为所需的毫秒数like this

+0

这只适用于动画,但我不想动画它 – Edward 2010-05-06 14:46:17

+1

@Relax - '0'不是动画,它是1帧CSS更新,是不是更快点击链接,看到这个工作比立即解雇它?这是一种糟糕的做法,你会错过以这种方式学习许多新事物,只是想一想。 – 2010-05-06 14:47:05

+0

我更喜欢价值变化,但我认为这种方式也可以工作,并且您的想法很有创意,:) – Edward 2010-05-06 14:57:50

1
$("p").css({marginLeft: function(index, value) { 
    return parseFloat(value) + 100; 
}}); 
4

你可以简单地实现这一点只使用的CSS(见下例)

$('#element-id').css('margin-left', '+=100px');