aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2017-06-14 19:11:08 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2017-06-14 19:11:08 +0200
commitaf7c33b902dbeff05e32dcd720b1480356401e6b (patch)
treecd48ad94f7a1f80ae684cbfe24188e5ef87e49cd /js
parentdc17129082dc112fd45515adfc233c685723d547 (diff)
downloadfosdem-2018-presentation-af7c33b902dbeff05e32dcd720b1480356401e6b.tar
fosdem-2018-presentation-af7c33b902dbeff05e32dcd720b1480356401e6b.tar.gz
unload lazy loaded videos that are moved out of view
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/js/reveal.js b/js/reveal.js
index 17d1323..3bde30a 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3169,6 +3169,7 @@
// Media elements with data-src attributes
toArray( slide.querySelectorAll( 'img[data-src], video[data-src], audio[data-src]' ) ).forEach( function( element ) {
element.setAttribute( 'src', element.getAttribute( 'data-src' ) );
+ element.setAttribute( 'data-lazy-loaded', '' );
element.removeAttribute( 'data-src' );
} );
@@ -3179,6 +3180,7 @@
toArray( media.querySelectorAll( 'source[data-src]' ) ).forEach( function( source ) {
source.setAttribute( 'src', source.getAttribute( 'data-src' ) );
source.removeAttribute( 'data-src' );
+ source.setAttribute( 'data-lazy-loaded', '' );
sources += 1;
} );
@@ -3285,6 +3287,18 @@
background.style.display = 'none';
}
+ // Reset lazy-loaded media elements with src attributes
+ toArray( slide.querySelectorAll( 'video[data-lazy-loaded][src], audio[data-lazy-loaded][src]' ) ).forEach( function( element ) {
+ element.setAttribute( 'data-src', element.getAttribute( 'src' ) );
+ element.removeAttribute( 'src' );
+ } );
+
+ // Reset lazy-loaded media elements with <source> children
+ toArray( slide.querySelectorAll( 'video[data-lazy-loaded] source[src], audio source[src]' ) ).forEach( function( source ) {
+ source.setAttribute( 'data-src', source.getAttribute( 'src' ) );
+ source.removeAttribute( 'src' );
+ } );
+
}
/**