Jquery

2013-01-02 6 views
7

ile gerçek boyutunun yerine bir öğenin görünür yüksekliğini yakalayın Bu yazı this one ile ilgilidir. Lütfen bunu da okuyun. :-)Jquery

Bağlantımdaki yazımda, bir div'in görünür yüksekliğinin bir başka div değerinden daha büyük olması durumunda, sorunumun çözümünün bir linkin hedefini değiştirmek olacağını düşündüm. Benim düzenimde, atıfta bulunduğum tüm div'ler 1100px'lik bir yüksekliğe sahip. Ama almak istediğim bu değil. Senaryoyu, gerçek yüksekliği değil, ziyaretçi tarafından görülebilen div yüksekliğini almasını istiyorum. JQuery kullanarak bunu yapmanın bir yolu var mı?

Şimdiden teşekkürler!

+1

Ne denediniz? Viewport bilgileriyle birlikte 'jQuery.offset()' işlevini kontrol edin ve eleman yüksekliği bunu anlamanıza yardımcı olacaktır. Sadece toplama ve çıkarma meselesi. – Pablo

+0

Bunu hiç anladın mı? Aynı şeyi yapmaya çalışıyorum ve şansım yok. – JacobTheDev

cevap

1

Vizör DIV'inin içeriğini başka bir DIV ile sarın. Bu DIV'yi şu şekilde tüm içeriğin yüksekliğini okumaya hedefleyin:

JQuery: $ ('div # content'). Height();

Düzen: Bu yardımcı olur

<div id="viewport"> 
    <div id="contents">...all your div contents...</div> 
</div> 

Umut. İyi şanslar.

-1

Sabit bir 1100 piksel yükseklik kullanmanız gerekiyor mu? Çünkü bir maksimum yükseklik de belirtebilirsiniz: 1100px; ve bir yükseklik:% 100; Eğer

$('.divclass').height(); 
7

ederek tabii şimdiki yüksekliği elde edebilirsiniz div içine koymak istediğinize bağlı Ne yapabilirsiniz eksi onu ebeveynlerden daha sonra üst kapsayıcı ve üstüne elemanları pozisyon almak olduğunu konteyner yüksekliği. Bu size elementin görünür yüksekliğini verecektir. Bu bir fiddle gösterir.

+0

Daha önce hiç kullanmamıştım, daha önce bir şey söylemeden önce cevabınız için teşekkür ederim. :-) Metodu kullanarak bir şey bulmaya çalıştım ama maalesef işe yaramadı. Diyelim ki 1100px boyunda 3 tane tane var. Bütün belgem 3300px yüksekliğindedir. Yapmak istediğim, son div ile en üstteki belge arasındaki mesafeyi hesaplamak ve daha sonra sonuca göre bağlantımın hedefini değiştirmek. Öyleyse: (3300 - $ ('# div3'). Offset(). Üst) –

+0

Belgenin en üstündeyken, 1100'ünü geri aldım, beklediğim buydu. Ama sonra biraz aşağı kaydırdım, senaryoyu başlattım, ama yine de 1100'e geri döndü. Bana 1100'den daha yüksek bir sayı vereceğini düşündüm, ama yapmadı. Bu yüzden sanırım, işin bittiğini düşündüğüm şeyi yapmaz ve sadece kaydırmanın geçerli konumuna uyum sağlamaz. : -/ –

+0

@ TomS. Uyarınıza $ (window) .scrollTop() 'yi ekleyin ve ne istediğinizi size verecektir. [fiddle] (http://jsfiddle.net/bplumb/mbZby/4/) –