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.
This commit is contained in:
parent
1219564e05
commit
76fce3b4d9
1 changed files with 26 additions and 10 deletions
28
js/reveal.js
28
js/reveal.js
|
@ -1629,10 +1629,18 @@ var Reveal = (function(){
|
||||||
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment:not(.visible)' ) );
|
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment:not(.visible)' ) );
|
||||||
|
|
||||||
if( fragments.length ) {
|
if( fragments.length ) {
|
||||||
fragments[0].classList.add( 'visible' );
|
// There may be multiple fragments with the same index. We want to display all of them.
|
||||||
|
var nextFragmentIndex = fragments[0].getAttribute( 'data-fragment-index' );
|
||||||
|
|
||||||
// Notify subscribers of the change
|
toArray( fragments ).forEach( function( thisFragment ) {
|
||||||
dispatchEvent( 'fragmentshown', { fragment: fragments[0] } );
|
var f = thisFragment.getAttribute( 'data-fragment-index' );
|
||||||
|
if( f === nextFragmentIndex ) {
|
||||||
|
thisFragment.classList.add( 'visible' );
|
||||||
|
|
||||||
|
// Notify subscribers of the change
|
||||||
|
dispatchEvent( 'fragmentshown', { fragment: thisFragment } );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
updateControls();
|
updateControls();
|
||||||
return true;
|
return true;
|
||||||
|
@ -1655,10 +1663,18 @@ var Reveal = (function(){
|
||||||
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) );
|
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) );
|
||||||
|
|
||||||
if( fragments.length ) {
|
if( fragments.length ) {
|
||||||
fragments[ fragments.length - 1 ].classList.remove( 'visible' );
|
// There may be multiple fragments with the same index. We want to display all of them.
|
||||||
|
var prevFragmentIndex = fragments[0].getAttribute( 'data-fragment-index' );
|
||||||
|
|
||||||
// Notify subscribers of the change
|
toArray( fragments ).forEach( function( thisFragment ) {
|
||||||
dispatchEvent( 'fragmenthidden', { fragment: fragments[ fragments.length - 1 ] } );
|
var f = thisFragment.getAttribute( 'data-fragment-index' );
|
||||||
|
if( f === prevFragmentIndex ) {
|
||||||
|
thisFragment.classList.remove( 'visible' );
|
||||||
|
|
||||||
|
// Notify subscribers of the change
|
||||||
|
dispatchEvent( 'fragmenthidden', { fragment: thisFragment } );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
updateControls();
|
updateControls();
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue