lazy-load support for audio #793
This commit is contained in:
14
js/reveal.js
14
js/reveal.js
@ -2173,25 +2173,25 @@ var Reveal = (function(){
|
||||
function loadSlide( slide ) {
|
||||
|
||||
// Media elements with data-src attributes
|
||||
toArray( slide.querySelectorAll( 'img[data-src], video[data-src]' ) ).forEach( function( element ) {
|
||||
toArray( slide.querySelectorAll( 'img[data-src], video[data-src], audio[data-src]' ) ).forEach( function( element ) {
|
||||
element.setAttribute( 'src', element.getAttribute( 'data-src' ) );
|
||||
element.removeAttribute( 'data-src' );
|
||||
} );
|
||||
|
||||
// Video elements with multiple <source>s
|
||||
toArray( slide.querySelectorAll( 'video' ) ).forEach( function( video ) {
|
||||
// Media elements with multiple <source>s
|
||||
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( media ) {
|
||||
var sources = 0;
|
||||
|
||||
toArray( slide.querySelectorAll( 'source[data-src]' ) ).forEach( function( source ) {
|
||||
toArray( media.querySelectorAll( 'source[data-src]' ) ).forEach( function( source ) {
|
||||
source.setAttribute( 'src', source.getAttribute( 'data-src' ) );
|
||||
source.removeAttribute( 'data-src' );
|
||||
sources += 1;
|
||||
} );
|
||||
|
||||
// If we rewrote sources for this video, we need to manually
|
||||
// tell it to load from its new origin
|
||||
// If we rewrote sources for this video/audio element, we need
|
||||
// to manually tell it to load from its new origin
|
||||
if( sources > 0 ) {
|
||||
video.load();
|
||||
media.load();
|
||||
}
|
||||
} );
|
||||
|
||||
|
Reference in New Issue
Block a user