Kullanmadan güvenilir bir şekilde döndürme öğesinin scrollHeight özelliği Düz Javascript veya jQuery kullanarak, kaydırma öğesinin tam yüksekliğini almam gerekir. Ancak DOM özelliği scrollHeight
is apparently not 100% reliable.`scrollHeight` özelliği
Sonra onun öncesinde değerine css (dönen geçici boyutunu kontrol, et auto
bir css yüksekliğini vererek öngören edildi kendisi sorunları var ki - ben jQuery .css('height')
gibi css height:100%
yerine height:1012px
nasıl elde edersiniz dönecek).
$el.css('height', 'auto');
scrollHeight = $el.height();
$el.css('height', '');
: Ama sonra yoluna jQuery bir öğeye doğrudan css stil uygular nedeniyle, sadece bu yüzden teorik olarak bunu yapabilir miydim, stile normal stil sayfalık ilan değere ''
döner uygulayarak anladım Ama bu işe yaramıyor. height:auto
, öğemin orijinal stilini 100%
geçersiz kılıyor ve öğenin istenen yüksekliğin tamamını almasını sağlıyor.
Şimdi bu satırlar boyunca daha fazla bir şey düşünüyorum: İlk çocuk elemanın üstünün konumunu ve son alt öğenin alt kısmının yüksekliğini almak için konumunu kullanın. (Gerekirse ben bu kavramın sadece bir kanıtıdır, dolgu ve marj için ayarlayabilirsiniz.)
function scrollHeight($el) {
var lastEl = $el.children(':last');
return (
lastEl.position().top
+ lastEl.height()
- $el.children(':first').position().top;
);
}
Math.max($el[0].scrollHeight, $el.height())
arasında bazı çalışma da yararlı olabilir ...
scrollHeight
'unu tanımak ve öğenin kaydırıldığı sırada değiştirilmemesine ve IE 8 gibi tüm önemli tarayıcılarda çalışmaya devam etmesine gerek yok. IE 6 & 7) için bir çözüm bilmek ilginç.
IE 6 ve 7? Hatta Google (evet, beyaz başlangıç sayfasında bile :)) bu iki adama destek vermedi –
Sorununuzu yeniden üreten bir jsfiddle sağlayabilir misiniz? –
@ RokoC.Buljan Bu oldukça iyi bir nokta. Kendi şirketim sadece geçen sene içinde IE7'den ayrıldı ... bu yüzden, vahşi ortamda kıtlaşsa bile onu nasıl destekleyeceğimi bilmek istediğimi düşünüyordum. Ama bunu yansıtmak için soruyu güncelleyeceğim. – ErikE