Merge branch 'sort_fragments' of https://github.com/jaberg/reveal.js into dev
This commit is contained in:
		
							
								
								
									
										30
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -142,6 +142,31 @@ var Reveal = (function(){ | ||||
| 			threshold: 80 | ||||
| 		}; | ||||
|  | ||||
|     /** | ||||
|      * Return a sorted fragments list, ordered by an increasing "fragment-pos" attribute. | ||||
|      * | ||||
|      * Fragments will be revealed in the order that they are returned by | ||||
|      * this function, so you can use "fragment-pos" attributes to control | ||||
|      * the order of fragment appearance. | ||||
|      * | ||||
|      * To maintain a sensible default fragment order, fragments are presumed | ||||
|      * to be passed in document order. This function adds a "fragment-pos" | ||||
|      * attribute to each node if such an attribute is not already present, | ||||
|      * and sets that attribute to an integer value which is the position of | ||||
|      * the fragment within the fragments list. | ||||
|      * | ||||
|      */ | ||||
|     function sort_fragments( fragments ) { | ||||
|         var a = toArray(fragments) | ||||
|         a.forEach( function (el, idx) { | ||||
|                 if (!el.hasAttribute('fragment-pos')) { | ||||
|                     el.setAttribute('fragment-pos', idx) }}) | ||||
|         a.sort(function(l, r) { | ||||
|                 return l.getAttribute( 'fragment-pos' ) | ||||
|                        - r.getAttribute( 'fragment-pos') }) | ||||
|         return a | ||||
|     } | ||||
|  | ||||
| 	/** | ||||
| 	 * Starts up the presentation if the client is capable. | ||||
| 	 */ | ||||
| @@ -1022,6 +1047,7 @@ var Reveal = (function(){ | ||||
| 		// Show fragment, if specified | ||||
| 		if( typeof f !== 'undefined' ) { | ||||
| 			var fragments = currentSlide.querySelectorAll( '.fragment' ); | ||||
|                         fragments = sort_fragments(fragments) | ||||
|  | ||||
| 			toArray( fragments ).forEach( function( fragment, indexf ) { | ||||
| 				if( indexf < f ) { | ||||
| @@ -1393,6 +1419,7 @@ var Reveal = (function(){ | ||||
| 		// Vertical slides: | ||||
| 		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) { | ||||
| 			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' ); | ||||
|                         verticalFragments = sort_fragments(verticalFragments) | ||||
| 			if( verticalFragments.length ) { | ||||
| 				verticalFragments[0].classList.add( 'visible' ); | ||||
|  | ||||
| @@ -1404,6 +1431,7 @@ var Reveal = (function(){ | ||||
| 		// Horizontal slides: | ||||
| 		else { | ||||
| 			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' ); | ||||
|                         horizontalFragments = sort_fragments(horizontalFragments) | ||||
| 			if( horizontalFragments.length ) { | ||||
| 				horizontalFragments[0].classList.add( 'visible' ); | ||||
|  | ||||
| @@ -1428,6 +1456,7 @@ var Reveal = (function(){ | ||||
| 		// Vertical slides: | ||||
| 		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) { | ||||
| 			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' ); | ||||
|                         verticalFragments = sort_fragments(verticalFragments) | ||||
| 			if( verticalFragments.length ) { | ||||
| 				verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' ); | ||||
|  | ||||
| @@ -1439,6 +1468,7 @@ var Reveal = (function(){ | ||||
| 		// Horizontal slides: | ||||
| 		else { | ||||
| 			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' ); | ||||
|                         horizontalFragments = sort_fragments(horizontalFragments) | ||||
| 			if( horizontalFragments.length ) { | ||||
| 				horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' ); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user