fragments are now zero-indexed
This commit is contained in:
		
							
								
								
									
										24
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -1047,7 +1047,7 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 		a.forEach( function( el, idx ) { | 		a.forEach( function( el, idx ) { | ||||||
| 			if( !el.hasAttribute( 'data-fragment-index' ) ) { | 			if( !el.hasAttribute( 'data-fragment-index' ) ) { | ||||||
| 				el.setAttribute( 'data-fragment-index', idx + 1 ); | 				el.setAttribute( 'data-fragment-index', idx ); | ||||||
| 			} | 			} | ||||||
| 		} ); | 		} ); | ||||||
|  |  | ||||||
| @@ -2261,7 +2261,7 @@ var Reveal = (function(){ | |||||||
| 			var hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0; | 			var hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0; | ||||||
| 			if( hasFragments ) { | 			if( hasFragments ) { | ||||||
| 				var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' ); | 				var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' ); | ||||||
| 				f = visibleFragments.length; | 				f = visibleFragments.length - 1; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -2273,7 +2273,7 @@ var Reveal = (function(){ | |||||||
| 	 * Navigate to the specified slide fragment. | 	 * Navigate to the specified slide fragment. | ||||||
| 	 * | 	 * | ||||||
| 	 * @param {Number} index The index of the fragment that | 	 * @param {Number} index The index of the fragment that | ||||||
| 	 * should be shown, 1-based, 0 means all are invisible | 	 * should be shown, -1 means all are invisible | ||||||
| 	 * @param {Number} offset Integer offset to apply to the | 	 * @param {Number} offset Integer offset to apply to the | ||||||
| 	 * fragment index | 	 * fragment index | ||||||
| 	 * | 	 * | ||||||
| @@ -2292,10 +2292,10 @@ var Reveal = (function(){ | |||||||
| 					var lastVisibleFragment = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop(); | 					var lastVisibleFragment = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop(); | ||||||
|  |  | ||||||
| 					if( lastVisibleFragment ) { | 					if( lastVisibleFragment ) { | ||||||
| 						index = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 1, 10 ); | 						index = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 0, 10 ); | ||||||
| 					} | 					} | ||||||
| 					else { | 					else { | ||||||
| 						index = 0; | 						index = -1; | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| @@ -2309,8 +2309,14 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 				toArray( fragments ).forEach( function( element, i ) { | 				toArray( fragments ).forEach( function( element, i ) { | ||||||
|  |  | ||||||
|  | 					// Hidden fragments | ||||||
|  | 					if( i > index ) { | ||||||
|  | 						if( element.classList.contains( 'visible' ) ) fragmentsHidden.push( element ); | ||||||
|  | 						element.classList.remove( 'visible' ); | ||||||
|  | 						element.classList.remove( 'current-fragment' ); | ||||||
|  | 					} | ||||||
| 					// Visible fragments | 					// Visible fragments | ||||||
| 					if( i < index ) { | 					else { | ||||||
| 						if( !element.classList.contains( 'visible' ) ) fragmentsShown.push( element ); | 						if( !element.classList.contains( 'visible' ) ) fragmentsShown.push( element ); | ||||||
| 						element.classList.add( 'visible' ); | 						element.classList.add( 'visible' ); | ||||||
| 						element.classList.remove( 'current-fragment' ); | 						element.classList.remove( 'current-fragment' ); | ||||||
| @@ -2319,12 +2325,6 @@ var Reveal = (function(){ | |||||||
| 							element.classList.add( 'current-fragment' ); | 							element.classList.add( 'current-fragment' ); | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 					// Hidden fragments |  | ||||||
| 					else { |  | ||||||
| 						if( element.classList.contains( 'visible' ) ) fragmentsHidden.push( element ); |  | ||||||
| 						element.classList.remove( 'visible' ); |  | ||||||
| 						element.classList.remove( 'current-fragment' ); |  | ||||||
| 					} |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 				} ); | 				} ); | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										20
									
								
								test/test.js
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								test/test.js
									
									
									
									
									
								
							| @@ -139,6 +139,9 @@ Reveal.addEventListener( 'ready', function() { | |||||||
| 		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } ); | 		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } ); | ||||||
|  |  | ||||||
| 		// There's fragments on this slide | 		// There's fragments on this slide | ||||||
|  | 		Reveal.next(); | ||||||
|  | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } ); | ||||||
|  |  | ||||||
| 		Reveal.next(); | 		Reveal.next(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } ); | ||||||
|  |  | ||||||
| @@ -148,9 +151,6 @@ Reveal.addEventListener( 'ready', function() { | |||||||
| 		Reveal.next(); | 		Reveal.next(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } ); | ||||||
|  |  | ||||||
| 		Reveal.next(); |  | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 } ); |  | ||||||
|  |  | ||||||
| 		Reveal.next(); | 		Reveal.next(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); | 		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); | ||||||
|  |  | ||||||
| @@ -177,31 +177,31 @@ Reveal.addEventListener( 'ready', function() { | |||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	test( 'Stepping through fragments', function() { | 	test( 'Stepping through fragments', function() { | ||||||
| 		Reveal.slide( 2, 0, 0 ); | 		Reveal.slide( 2, 0, -1 ); | ||||||
|  |  | ||||||
| 		// forwards: | 		// forwards: | ||||||
|  |  | ||||||
| 		Reveal.next(); | 		Reveal.next(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'next() goes to next fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' ); | ||||||
|  |  | ||||||
| 		Reveal.right(); | 		Reveal.right(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'right() goes to next fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' ); | ||||||
|  |  | ||||||
| 		Reveal.down(); | 		Reveal.down(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 }, 'down() goes to next fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' ); | ||||||
|  |  | ||||||
| 		Reveal.down(); // moves to f #3 | 		Reveal.down(); // moves to f #3 | ||||||
|  |  | ||||||
| 		// backwards: | 		// backwards: | ||||||
|  |  | ||||||
| 		Reveal.prev(); | 		Reveal.prev(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'prev() goes to prev fragment' ); | ||||||
|  |  | ||||||
| 		Reveal.left(); | 		Reveal.left(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'left() goes to prev fragment' ); | ||||||
|  |  | ||||||
| 		Reveal.up(); | 		Reveal.up(); | ||||||
| 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'left() goes to prev fragment' ); | 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'up() goes to prev fragment' ); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	test( 'Stepping past fragments', function() { | 	test( 'Stepping past fragments', function() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user