diff options
author | Daniel Moore <dmoore@credera.com> | 2014-03-13 18:22:30 -0500 |
---|---|---|
committer | Daniel Moore <dmoore@credera.com> | 2014-03-13 18:22:30 -0500 |
commit | 1a7732c235df0076dd77bc396266e7c94c024040 (patch) | |
tree | 93baee586578a11c3e4b3a6b605aad3f39a6413d | |
parent | 0140fd9ee6e8d0f193ab594d1df4a9f923c8a0df (diff) | |
download | perl-software-in-gnu-guix-1a7732c235df0076dd77bc396266e7c94c024040.tar perl-software-in-gnu-guix-1a7732c235df0076dd77bc396266e7c94c024040.tar.gz |
More robost calculation of .stretch height
-rw-r--r-- | js/reveal.js | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/js/reveal.js b/js/reveal.js index f6edd45..c5bd3ae 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -836,40 +836,26 @@ var Reveal = (function(){ /** * Returns the remaining height within the parent of the - * target element after subtracting the height of all - * siblings. + * target element. * - * remaining height = [parent height] - [ siblings height] + * remaining height = [ configured parent height ] - [ current parent height ] */ function getRemainingHeight( element, height ) { height = height || 0; if( element ) { - var parent = element.parentNode; - var siblings = parent.childNodes; + var newHeight, oldHeight = element.style.height; - // Subtract the height of each sibling - toArray( siblings ).forEach( function( sibling ) { + // Change the .stretch element height to 0 in order find the height of all + // the other elements + element.style.height = '0px'; + newHeight = height - element.parentNode.offsetHeight; - if( typeof sibling.offsetHeight === 'number' && sibling !== element ) { - - var styles = window.getComputedStyle( sibling ), - marginTop = parseInt( styles.marginTop, 10 ), - marginBottom = parseInt( styles.marginBottom, 10 ); - - height -= sibling.offsetHeight + marginTop + marginBottom; - - } - - } ); - - var elementStyles = window.getComputedStyle( element ); - - // Subtract the margins of the target element - height -= parseInt( elementStyles.marginTop, 10 ) + - parseInt( elementStyles.marginBottom, 10 ); + // Restore the old height, just in case + element.style.height = oldHeight + 'px'; + return newHeight; } return height; @@ -1149,7 +1135,7 @@ var Reveal = (function(){ toArray( dom.slides.querySelectorAll( 'section > .stretch' ) ).forEach( function( element ) { // Determine how much vertical space we can use - var remainingHeight = getRemainingHeight( element, ( height - ( padding * 2 ) ) ); + var remainingHeight = getRemainingHeight( element, height ); // Consider the aspect ratio of media elements if( /(img|video)/gi.test( element.nodeName ) ) { |