aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorNigel Stanger <nigel.stanger@otago.ac.nz>2013-05-02 12:26:23 +1200
committerNigel Stanger <nigel.stanger@otago.ac.nz>2013-05-02 12:26:23 +1200
commit76fce3b4d9f524e9a6534bb19745894e1c743849 (patch)
tree8d0c15fb26d0309335cdee9256a10d67df8ffa15 /js
parent1219564e0560702b1d0d4df9983bae0fbac7fde4 (diff)
downloadperl-software-in-gnu-guix-76fce3b4d9f524e9a6534bb19745894e1c743849.tar
perl-software-in-gnu-guix-76fce3b4d9f524e9a6534bb19745894e1c743849.tar.gz
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.
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js36
1 files changed, 26 insertions, 10 deletions
diff --git a/js/reveal.js b/js/reveal.js
index a4a71db..d27b625 100644
--- a/js/reveal.js
+++ b/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(){
}
};
-})(); \ No newline at end of file
+})();