shuffle now applies to vertical slides as well
parent
2bfe705e6a
commit
3a99a7b70a
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -16,8 +16,9 @@
|
||||||
<body>
|
<body>
|
||||||
<div class="reveal">
|
<div class="reveal">
|
||||||
<div class="slides">
|
<div class="slides">
|
||||||
<section>Slide 1</section>
|
<section><section>Slide 1</section>
|
||||||
<section>Slide 2</section>
|
<section>Slide 2</section>
|
||||||
|
<section>Slide 3</section></section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
20
js/reveal.js
20
js/reveal.js
|
@ -1467,13 +1467,23 @@ export default function( revealElement, options ) {
|
||||||
/**
|
/**
|
||||||
* Randomly shuffles all slides in the deck.
|
* Randomly shuffles all slides in the deck.
|
||||||
*/
|
*/
|
||||||
function shuffle() {
|
function shuffle( slides = getHorizontalSlides() ) {
|
||||||
|
|
||||||
getHorizontalSlides().forEach( ( slide, i, slides ) => {
|
slides.forEach( ( slide, i ) => {
|
||||||
|
|
||||||
// Insert this slide next to another random slide. This may
|
// Insert the slide next to a randomly picked sibling slide
|
||||||
// cause the slide to insert before itself but that's fine.
|
// slide. This may cause the slide to insert before itself,
|
||||||
dom.slides.insertBefore( slide, slides[ Math.floor( Math.random() * slides.length ) ] );
|
// but that's not an issue.
|
||||||
|
let beforeSlide = slides[ Math.floor( Math.random() * slides.length ) ];
|
||||||
|
if( beforeSlide.parentNode === slide.parentNode ) {
|
||||||
|
slide.parentNode.insertBefore( slide, beforeSlide );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Randomize the order of vertical slides (if there are any)
|
||||||
|
let verticalSlides = slide.querySelectorAll( 'section' );
|
||||||
|
if( verticalSlides.length ) {
|
||||||
|
shuffle( verticalSlides );
|
||||||
|
}
|
||||||
|
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue