Browse Source

Support for multiple elements with same data-fragment-index

When multiple elements are specified with the same data-fragment-index,
they are all shown or hidden at once.
embed
Nigel Stanger 12 years ago
parent
commit
76fce3b4d9
  1. 36
      js/reveal.js

36
js/reveal.js

@ -1629,11 +1629,19 @@ var Reveal = (function(){
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment:not(.visible)' ) );
if( fragments.length ) {
fragments[0].classList.add( 'visible' );
// Notify subscribers of the change
dispatchEvent( 'fragmentshown', { fragment: fragments[0] } );
// There may be multiple fragments with the same index. We want to display all of them.
var nextFragmentIndex = fragments[0].getAttribute( 'data-fragment-index' );
toArray( fragments ).forEach( function( thisFragment ) {
var f = thisFragment.getAttribute( 'data-fragment-index' );
if( f === nextFragmentIndex ) {
thisFragment.classList.add( 'visible' );
// Notify subscribers of the change
dispatchEvent( 'fragmentshown', { fragment: thisFragment } );
}
} );
updateControls();
return true;
}
@ -1655,10 +1663,18 @@ var Reveal = (function(){
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) );
if( fragments.length ) {
fragments[ fragments.length - 1 ].classList.remove( 'visible' );
// Notify subscribers of the change
dispatchEvent( 'fragmenthidden', { fragment: fragments[ fragments.length - 1 ] } );
// There may be multiple fragments with the same index. We want to display all of them.
var prevFragmentIndex = fragments[0].getAttribute( 'data-fragment-index' );
toArray( fragments ).forEach( function( thisFragment ) {
var f = thisFragment.getAttribute( 'data-fragment-index' );
if( f === prevFragmentIndex ) {
thisFragment.classList.remove( 'visible' );
// Notify subscribers of the change
dispatchEvent( 'fragmenthidden', { fragment: thisFragment } );
}
} );
updateControls();
return true;
@ -2226,4 +2242,4 @@ var Reveal = (function(){
}
};
})();
})();

Loading…
Cancel
Save