fragments are now zero-indexed
parent
9d0ac52780
commit
60a74ebfa3
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' );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} );
|
} );
|
||||||
|
|
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() {
|
||||||
|
|
Loading…
Reference in New Issue