浏览代码

lazy-load support for audio #793

Hakim El Hattab 11 年之前
父节点
当前提交
73f96f1d28
共有 3 个文件被更改,包括 7 次插入13 次删除
  1. 7 7
      js/reveal.js
  2. 0 4
      test/test.html
  3. 0 2
      test/test.js

+ 7 - 7
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();
 			}
 		} );
 

+ 0 - 4
test/test.html

@@ -22,10 +22,6 @@
 				<section>
 					<h1>1</h1>
 					<img data-src="fake-url.png">
-					<video>
-						<source data-src="fake-url.mp4" />
-						<source data-src="fake-url.webm" />
-					</video>
 				</section>
 
 				<section>

+ 0 - 2
test/test.js

@@ -456,8 +456,6 @@ Reveal.addEventListener( 'ready', function() {
 
 	test( 'img with data-src', function() {
 		strictEqual( document.querySelectorAll( '.reveal section img[src]' ).length, 1, 'Image source has been set' );
-
-		strictEqual( document.querySelectorAll( '.reveal section video source[src]' ).length, 2, 'Video sources have been set' );
 	});