Parcourir la source

remove current-fragment when leaving slide, add tests for current fragment

Hakim El Hattab il y a 11 ans
Parent
commit
ef82645589
3 fichiers modifiés avec 36 ajouts et 3 suppressions
  1. 6 2
      js/reveal.js
  2. 1 1
      js/reveal.min.js
  3. 29 0
      test/test.js

+ 6 - 2
js/reveal.js

@@ -1712,7 +1712,9 @@ var Reveal = (function(){
 
 					// Show all fragments on prior slides
 					while( pastFragments.length ) {
-						pastFragments.pop().classList.add( 'visible' );
+						var pastFragment = pastFragments.pop();
+						pastFragment.classList.add( 'visible' );
+						pastFragment.classList.remove( 'current-fragment' );
 					}
 				}
 				else if( i > index ) {
@@ -1723,7 +1725,9 @@ var Reveal = (function(){
 
 					// No fragments in future slides should be visible ahead of time
 					while( futureFragments.length ) {
-						futureFragments.pop().classList.remove( 'visible' );
+						var futureFragment = futureFragments.pop();
+						futureFragment.classList.remove( 'visible' );
+						futureFragment.classList.remove( 'current-fragment' );
 					}
 				}
 

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
js/reveal.min.js


+ 29 - 0
test/test.js

@@ -166,6 +166,9 @@ Reveal.addEventListener( 'ready', function() {
 	QUnit.module( 'Fragments' );
 
 	test( 'Sliding to fragments', function() {
+		Reveal.slide( 2, 0, -1 );
+		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
+
 		Reveal.slide( 2, 0, 0 );
 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
 
@@ -176,6 +179,32 @@ Reveal.addEventListener( 'ready', function() {
 		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
 	});
 
+	test( 'Hiding all fragments', function() {
+		var fragmentSlide = document.querySelector( '.reveal .slides>section:nth-child(3)' );
+
+		Reveal.slide( 2, 0, 0 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
+
+		Reveal.slide( 2, 0, -1 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index 0' );
+	});
+
+	test( 'Current fragment', function() {
+		var fragmentSlide = document.querySelector( '.reveal .slides>section:nth-child(3)' );
+
+		Reveal.slide( 2, 0 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
+
+		Reveal.slide( 2, 0, 0 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
+
+		Reveal.slide( 1, 0, 0 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
+
+		Reveal.slide( 3, 0, 0 );
+		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
+	});
+
 	test( 'Stepping through fragments', function() {
 		Reveal.slide( 2, 0, -1 );
 

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff