|
@@ -722,6 +722,56 @@ var Reveal = (function(){
|
|
|
|
|
|
}
|
|
|
|
|
|
+ function getComputedCSSProperty( element, prop ) {
|
|
|
+
|
|
|
+ if( window.getComputedStyle ) {
|
|
|
+ return window.getComputedStyle( element )[ prop ];
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return element.currentStyle ? element.currentStyle( prop ) : element.style[ prop ];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Returns the remaining height within the parent element
|
|
|
+ * of the target after taking out the height of all
|
|
|
+ * siblings.
|
|
|
+ *
|
|
|
+ * remaining height = [parent height] - [ siblings height]
|
|
|
+ */
|
|
|
+ function getRemainingHeight( element ) {
|
|
|
+
|
|
|
+ var height = 0;
|
|
|
+
|
|
|
+ if( element ) {
|
|
|
+ var parent = element.parentNode;
|
|
|
+ var siblings = parent.childNodes;
|
|
|
+
|
|
|
+ height = config.height;
|
|
|
+
|
|
|
+ // Remove the height of each sibling
|
|
|
+ toArray( siblings ).forEach( function( sibling ) {
|
|
|
+
|
|
|
+ if( typeof sibling.offsetHeight === 'number' && sibling !== element ) {
|
|
|
+
|
|
|
+ var marginTop = parseInt( getComputedCSSProperty( sibling, 'margin-top' ), 10 );
|
|
|
+ var marginBottom = parseInt( getComputedCSSProperty( sibling, 'margin-bottom' ), 10 );
|
|
|
+
|
|
|
+ console.log( marginTop, marginBottom );
|
|
|
+
|
|
|
+ height -= sibling.offsetHeight + marginTop + marginBottom;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return height;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Checks if this instance is being used to print a PDF.
|
|
|
*/
|
|
@@ -1017,6 +1067,13 @@ var Reveal = (function(){
|
|
|
|
|
|
updateProgress();
|
|
|
|
|
|
+ // Handle sizing of elements with the 'remaining-height' class
|
|
|
+ toArray( dom.slides.querySelectorAll( 'section > .remaining-height' ) ).forEach( function( element ) {
|
|
|
+
|
|
|
+ element.style.height = getRemainingHeight( element ) + 'px';
|
|
|
+
|
|
|
+ } );
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|