2010-05-06 77 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');