Преглед на файлове

shuffle now applies to vertical slides as well

Hakim El Hattab преди 4 години
родител
ревизия
3a99a7b70a
променени са 4 файла, в които са добавени 17 реда и са изтрити 6 реда
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.js
  3. 2 1
      index.html
  4. 15 5
      js/reveal.js

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/reveal.esm.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/reveal.js


+ 2 - 1
index.html

@@ -16,8 +16,9 @@
 	<body>
 		<div class="reveal">
 			<div class="slides">
-				<section>Slide 1</section>
+				<section><section>Slide 1</section>
 				<section>Slide 2</section>
+				<section>Slide 3</section></section>
 			</div>
 		</div>
 

+ 15 - 5
js/reveal.js

@@ -1467,13 +1467,23 @@ export default function( revealElement, options ) {
 	/**
 	 * 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
-			// cause the slide to insert before itself but that's fine.
-			dom.slides.insertBefore( slide, slides[ Math.floor( Math.random() * slides.length ) ] );
+			// Insert the slide next to a randomly picked sibling slide
+			// slide. This may cause the slide to insert before itself,
+			// 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 );
+			}
 
 		} );
 

Някои файлове не бяха показани, защото твърде много файлове са промени