javascript - Reliably return element's scrollHeight without using `scrollHeight` property -


using either plain javascript or jquery, need full height of scrolling element. dom property scrollheight is apparently not 100% reliable.

i envisioning temporarily giving item css height of auto, checking out size, returning css prior value (which has problems--how css height:100% instead of height:1012px jquery .css('height') return). figured out due way jquery applies css styling directly element, applying style '' returns normal style-sheet-declared value, theoretically this:

$el.css('height', 'auto'); scrollheight = $el.height(); $el.css('height', ''); 

but isn't working. height:auto isn't overriding element's original style of 100% , making element take full desired height.

so i'm thinking more along these lines: use position of first child element's top , position of last child element's bottom height. (i can adjust padding , margin if necessary, proof of concept.)

function scrollheight($el) {    var lastel = $el.children(':last');    return (       lastel.position().top          + lastel.height()          - $el.children(':first').position().top;    ); } 

some working in of math.max($el[0].scrollheight, $el.height()) useful...

is terrible idea? can't person who's ever needed know scrollheight of dom element , have reliable, not changing item scrolled, , working in major browsers, ie 8 (though interesting know solution ie 6 & 7).

instead of

$el.css('height', 'auto');

try -

$el.attr('style', 'height: auto !important');

i mention trying becuase -

height:auto isn't overriding element's original style of 100% , making element take full desired height.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -