2011-08-17 18 views

cevap

20

CSS right özelliğinin değerini bulmak ister misiniz?

$('#foo').css('right'); 
düz JavaScript yılında

:

document.getElementById('foo').style.right; 

Ama, yenisi sağ kenarına bir elementin sağ kenarından hesaplanan mesafeyi bulmak istiyorsanız, o zaman gerekecek .position().left ve .offsetWidth birleştirerek kendine bunu

+0

teşekkürler sadece önceden hesaplanan doğru değeri gerekli.Teşekkürler – Xavier

+3

JavaScript'in (ve jQuery) sizin adınıza doğru pozisyonu hesaplama işini yapmamasını sinir bozucu buluyorum. Yapmak istediği çok açık bir şey gibi görünüyor, ve eğer çerçeve kendiniz için hesaplamak zorunda kalmadan soyutlamanıza izin veriyorsa bu güzel olurdu. – cartbeforehorse

+0

@nickf ".position(). Left" ve ".offsetWidth" ifadelerinin size nasıl bir hipotetik '.position(). Offset ebeveyne göre * .position(). Right' * değerini hesaplamak için, o ofset ebadının ** ve ** geçerli elemanının '.offsetWidth 'değerini bilmeniz gerekir. kayıp parça. Bir şey mi eksik? – avernet

2

deneyebileceğiniz .css

.css("right");

+0

Sadece "right" zaten ayarlanmışsa çalışır – user3152459

6

Bu çalıştığını bana bakıyor:

jQuery('#elem').offset().left + jQuery('#elem').width() 

Fiddle: http://jsfiddle.net/adamovic/fcyL5sg0/

+0

için teşekkürler fikir @Mladen Adamovic –

3
$(document).width() - ($('#elem').offset().left + $('#elem').width()); 

size daha sonra ayarlayabilirsiniz elemanın sağ tarafındaki boşluk almalısınız elementin pozisyonunun 'doğru' özelliği için değer olarak;

0

CSS değeri yalnızca stil veya $ .css() ile ayarlanırsa geçerlidir.

Ancak bir nesnenin doğru konumunu almanız gerekiyorsa, javascript/jquery'yi kullanmalısınız.

Bazı geçerli çözümler olsa da, $ .fn.width() öğesinin hesaba katılmadığını ve dolgu yapılmadığını unutmayın. Yani outerWidth()'u kullanmak daha iyidir.

Örnek:

$(document).width() - ($('#elem').offset().left + $('#elem').outerWidth()); 

Hatta değerini almak için bir $ .fn işlevi oluşturabilirsiniz:

$.fn.right = function() { 
    return $(document).width() - (this.offset().left + this.outerWidth()); 
} 

Sonra kullanmak: tarafından belirtildiği gibi

$('#elem').right(); 
0

@ yorumlarda avernet, varsayımsal bir .position() eşdeğeri, şu şekilde ifade edilir:

$('#foo').offsetParent().width() - ($('#foo').position().left + $('#foo').width()); 
İlgili konular