2010-05-06 13 views
13

Bilinmeyen kenar boşluğu olan bir öğe verildiğinde, kenar boşluğunu bir sayıdan 100px artırabilir mi? ÖrneğinMevcut marjın bir sayısında jquery ile nasıl artırılır/azaltılır?

: Orijinal kenar-sol varsayılarak

beklenen sonuç en son olarak, 100 piksel + 100 piksel 200px olan 100 piksel

olup.

+0

geçerli değerini Fetch (aşağıdaki örneğe bakın) geri yazma elde edebilirsiniz –

cevap

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

curValue sonunda 'px' içerecektir, bu nedenle ilk parseInt kullanmadan sonucunda NaN veya 100px100px ile bitireceğiz.

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

bu tam olarak istediğim şey – Edward

+0

+1 Cevabınız örnek niteliğindedir. Teşekkür ederim! –

+0

Sadece güvenli tarafta olmak için, eklemeden önce şu anda marjlarınız olduğundan emin olabilirsiniz. 'var actualMargin = parseInt (curValue); if (isNaN (actualMargin)) { actualMargin = 0; } ' – Melanie

19

hızlı/veciz yolu bunu yapmak için:

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

Here's a quick example of this. 0 bunu tek bir karede gerçekleştirir, eğer gerçekten onu canlandırmak isterseniz, 0'u istediğiniz milisaniye olarak değiştirin, like this.

+0

Bu sadece animasyon uygulamak için çalışıyor, ama canlandırmak istemiyorum – Edward

+1

@Relax - '0' bir animasyon değil, 1 kare CSS güncellemesi, bağlantıyı tıklatıp daha hızlı çalışmak değil mi hemen reddetmekten mi? Bu kötü bir yaklaşım ve bu şekilde birçok yeni şey öğrenmeyi özleyeceksiniz, sadece düşünecek bir şey. –

+0

Değer değiştirmeyi tercih ederim, ama bu şekilde çalışacağınızı ve fikrinizin de yaratıcı olduğunu düşünüyorum, :) – Edward

1
? Şu anki değeri nasıl alacağın sorusu mu?
4

Sadece bu sadece .css kullanarak, 100 eklemek,

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