aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2016-04-28 17:07:26 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2016-04-28 17:07:26 +0200
commit9b11915c3a409aa456c64e9d386ac15598a4fa6b (patch)
treefd4949b56fa9440b2ed517ab90bffa53eef61ecb
parent55581035228aba9a0d061a6969797327c626b0bf (diff)
downloadfreenode-live-2017-presentation-9b11915c3a409aa456c64e9d386ac15598a4fa6b.tar
freenode-live-2017-presentation-9b11915c3a409aa456c64e9d386ac15598a4fa6b.tar.gz
fix pdf bg layering, simplify code
-rw-r--r--css/print/pdf.css14
-rw-r--r--js/reveal.js38
2 files changed, 16 insertions, 36 deletions
diff --git a/css/print/pdf.css b/css/print/pdf.css
index 9ed90d6..9ae0dfe 100644
--- a/css/print/pdf.css
+++ b/css/print/pdf.css
@@ -82,6 +82,12 @@ ul, ol, div, p {
perspective-origin: 50% 50%;
}
+.reveal .slides .pdf-page {
+ position: relative;
+ overflow: hidden;
+ z-index: 1;
+}
+
.reveal .slides section {
page-break-after: always !important;
@@ -132,13 +138,7 @@ ul, ol, div, p {
top: 0;
left: 0;
width: 100%;
- z-index: -1;
-}
-
-/* All elements should be above the slide-background */
-.reveal section>* {
- position: relative;
- z-index: 1;
+ height: 100%;
}
/* Display slide speaker notes when 'showNotes' is enabled */
diff --git a/js/reveal.js b/js/reveal.js
index 628c0b9..47b4f01 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -607,8 +607,7 @@
// Wrap the slide in a page element and hide its overflow
// so that no page ever flows onto another
var page = document.createElement( 'div' );
- page.className = 'page';
- page.style.overflow = 'hidden';
+ page.className = 'pdf-page';
page.style.height = ( pageHeight * numberOfPages ) + 'px';
slide.parentNode.insertBefore( page, slide );
page.appendChild( slide );
@@ -618,14 +617,8 @@
slide.style.top = top + 'px';
slide.style.width = slideWidth + 'px';
- // TODO Backgrounds need to be multiplied when the slide
- // stretches over multiple pages
- var background = slide.querySelector( '.slide-background' );
- if( background ) {
- background.style.width = pageWidth + 'px';
- background.style.height = ( pageHeight * numberOfPages ) + 'px';
- background.style.top = -top + 'px';
- background.style.left = -left + 'px';
+ if( slide.slideBackgroundElement ) {
+ page.insertBefore( slide.slideBackgroundElement, slide );
}
// Inject notes if `showNotes` is enabled
@@ -653,7 +646,7 @@
numberElement.classList.add( 'slide-number' );
numberElement.classList.add( 'slide-number-pdf' );
numberElement.innerHTML = formatSlideNumber( slideNumberH, '.', slideNumberV );
- background.appendChild( numberElement );
+ page.appendChild( numberElement );
}
}
@@ -733,24 +726,12 @@
// Iterate over all horizontal slides
toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) {
- var backgroundStack;
-
- if( printMode ) {
- backgroundStack = createBackground( slideh, slideh );
- }
- else {
- backgroundStack = createBackground( slideh, dom.background );
- }
+ var backgroundStack = createBackground( slideh, dom.background );
// Iterate over all vertical slides
toArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) {
- if( printMode ) {
- createBackground( slidev, slidev );
- }
- else {
- createBackground( slidev, backgroundStack );
- }
+ createBackground( slidev, backgroundStack );
backgroundStack.classList.add( 'stack' );
@@ -846,6 +827,8 @@
slide.classList.remove( 'has-dark-background' );
slide.classList.remove( 'has-light-background' );
+ slide.slideBackgroundElement = element;
+
// If this slide has a background color, add a class that
// signals if it is light or dark. If the slide has no background
// color, no class will be set
@@ -3406,10 +3389,7 @@
if( isPrintingPDF() ) {
var slide = getSlide( x, y );
if( slide ) {
- var background = slide.querySelector( '.slide-background' );
- if( background && background.parentNode === slide ) {
- return background;
- }
+ return slide.slideBackgroundElement;
}
return undefined;