diff options
author | Hakim El Hattab <hakim.elhattab@gmail.com> | 2016-03-20 17:57:52 +0100 |
---|---|---|
committer | Hakim El Hattab <hakim.elhattab@gmail.com> | 2016-03-20 17:57:52 +0100 |
commit | 2625a9292eae1c13c609eabd6d71eef825b55c92 (patch) | |
tree | 014bc4e194dbcf40f4ab087b498ade4b584d40da | |
parent | 0dbdd8a3667e043f3f67dc1ffdb654067b592919 (diff) | |
download | perl-software-in-gnu-guix-2625a9292eae1c13c609eabd6d71eef825b55c92.tar perl-software-in-gnu-guix-2625a9292eae1c13c609eabd6d71eef825b55c92.tar.gz |
add 'shuffle' config value and API method #1506 #1089
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | js/reveal.js | 27 |
2 files changed, 33 insertions, 0 deletions
@@ -152,6 +152,9 @@ Reveal.initialize({ // Change the presentation direction to be RTL rtl: false, + // Randomizes the order of slides each time the presentation loads + shuffle: false, + // Turns fragments on and off globally fragments: true, @@ -382,6 +385,9 @@ Reveal.next(); Reveal.prevFragment(); Reveal.nextFragment(); +// Randomize the order of slides +Reveal.shuffle(); + // Toggle presentation states, optionally pass true/false to force on/off Reveal.toggleOverview(); Reveal.togglePause(); diff --git a/js/reveal.js b/js/reveal.js index 7454535..575214e 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -81,6 +81,9 @@ // Change the presentation direction to be RTL rtl: false, + // Randomizes the order of slides each time the presentation loads + shuffle: false, + // Turns fragments on and off globally fragments: true, @@ -898,6 +901,10 @@ dom.progress.style.display = config.progress ? 'block' : 'none'; dom.slideNumber.style.display = config.slideNumber && !isPrintingPDF() ? 'block' : 'none'; + if( config.shuffle ) { + shuffle(); + } + if( config.rtl ) { dom.wrapper.classList.add( 'rtl' ); } @@ -2330,6 +2337,23 @@ } /** + * Randomly shuffles all slides in the deck. + */ + function shuffle() { + + var slides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + + slides.forEach( function( slide ) { + + // Insert this slide next to another random slide. This may + // cause the slide to insert before itself but that's fine. + dom.slides.insertBefore( slide, slides[ Math.floor( Math.random() * slides.length ) ] ); + + } ); + + } + + /** * Updates one dimension of slides by showing the slide * with the specified index. * @@ -4579,6 +4603,9 @@ // Forces an update in slide layout layout: layout, + // Randomizes the order of slides + shuffle: shuffle, + // Returns an object with the available routes as booleans (left/right/top/bottom) availableRoutes: availableRoutes, |