Skip to content
This repository has been archived by the owner on Sep 13, 2021. It is now read-only.

Commit

Permalink
add 'shuffle' config value and API method hakimel#1506 hakimel#1089
Browse files Browse the repository at this point in the history
  • Loading branch information
hakimel committed Mar 20, 2016
1 parent b92d888 commit 6050055
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,

Expand Down Expand Up @@ -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();
Expand Down
27 changes: 27 additions & 0 deletions js/reveal.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,

Expand Down Expand Up @@ -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' );
}
Expand Down Expand Up @@ -2329,6 +2336,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.
Expand Down Expand Up @@ -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,

Expand Down

0 comments on commit 6050055

Please sign in to comment.