new API methods for getting horizontal/vertical slides, force linear navigation for one-dimensional decks
This commit is contained in:
		
							parent
							
								
									1766e37a63
								
							
						
					
					
						commit
						bd1e82d19a
					
				
					 2 changed files with 67 additions and 8 deletions
				
			
		
							
								
								
									
										11
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -629,6 +629,15 @@ Reveal.getProgress();       // (0 == first slide, 1 == last slide)
 | 
				
			||||||
Reveal.getSlides();         // Array of all slides
 | 
					Reveal.getSlides();         // Array of all slides
 | 
				
			||||||
Reveal.getTotalSlides();    // Total number of slides
 | 
					Reveal.getTotalSlides();    // Total number of slides
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Returns an array with all horizontal/vertical slides in the deck
 | 
				
			||||||
 | 
					Reveal.getHorizontalSlides();
 | 
				
			||||||
 | 
					Reveal.getVerticalSlides();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Checks if the presentation contains two or more
 | 
				
			||||||
 | 
					// horizontal/vertical slides
 | 
				
			||||||
 | 
					Reveal.hasHorizontalSlides();
 | 
				
			||||||
 | 
					Reveal.hasVerticalSlides();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns the speaker notes for the current slide
 | 
					// Returns the speaker notes for the current slide
 | 
				
			||||||
Reveal.getSlideNotes();
 | 
					Reveal.getSlideNotes();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -640,7 +649,7 @@ Reveal.isPaused();
 | 
				
			||||||
Reveal.isAutoSliding();
 | 
					Reveal.isAutoSliding();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns the top-level DOM element
 | 
					// Returns the top-level DOM element
 | 
				
			||||||
getRevealElement(); // <div class="reveal">...</div>
 | 
					Reveal.getRevealElement(); // <div class="reveal">...</div>
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Custom Key Bindings
 | 
					### Custom Key Bindings
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										64
									
								
								js/reveal.js
									
										
									
									
									
								
							
							
						
						
									
										64
									
								
								js/reveal.js
									
										
									
									
									
								
							| 
						 | 
					@ -3337,7 +3337,7 @@
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Flag if there are ANY vertical slides, anywhere in the deck
 | 
								// Flag if there are ANY vertical slides, anywhere in the deck
 | 
				
			||||||
			if( dom.wrapper.querySelectorAll( '.slides>section>section' ).length ) {
 | 
								if( hasVerticalSlides() ) {
 | 
				
			||||||
				dom.wrapper.classList.add( 'has-vertical-slides' );
 | 
									dom.wrapper.classList.add( 'has-vertical-slides' );
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
| 
						 | 
					@ -3345,7 +3345,7 @@
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Flag if there are ANY horizontal slides, anywhere in the deck
 | 
								// Flag if there are ANY horizontal slides, anywhere in the deck
 | 
				
			||||||
			if( dom.wrapper.querySelectorAll( '.slides>section' ).length > 1 ) {
 | 
								if( hasHorizontalSlides() ) {
 | 
				
			||||||
				dom.wrapper.classList.add( 'has-horizontal-slides' );
 | 
									dom.wrapper.classList.add( 'has-horizontal-slides' );
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
| 
						 | 
					@ -4468,7 +4468,44 @@
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	function getSlides() {
 | 
						function getSlides() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ));
 | 
							return toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Returns a list of all horizontal slides in the deck. Each
 | 
				
			||||||
 | 
						 * vertical stack is included as one horizontal slide in the
 | 
				
			||||||
 | 
						 * resulting array.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						function getHorizontalSlides() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Returns all vertical slides that exist within this deck.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						function getVerticalSlides() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return toArray( dom.wrapper.querySelectorAll( '.slides>section>section' ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Returns true if there are at least two horizontal slides.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						function hasHorizontalSlides() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return getHorizontalSlides().length > 1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Returns true if there are at least two vertical slides.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						function hasVerticalSlides() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return getVerticalSlides().length > 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5183,6 +5220,10 @@
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Use linear navigation if we're configured to OR if
 | 
				
			||||||
 | 
							// the presentation is one-dimensional
 | 
				
			||||||
 | 
							var useLinearMode = config.navigationMode === 'linear' || !hasHorizontalSlides() || !hasVerticalSlides();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		var triggered = false;
 | 
							var triggered = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 1. User defined key bindings
 | 
							// 1. User defined key bindings
 | 
				
			||||||
| 
						 | 
					@ -5255,7 +5296,7 @@
 | 
				
			||||||
				if( firstSlideShortcut ) {
 | 
									if( firstSlideShortcut ) {
 | 
				
			||||||
					slide( 0 );
 | 
										slide( 0 );
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else if( !isOverview() && config.navigationMode === 'linear' ) {
 | 
									else if( !isOverview() && useLinearMode ) {
 | 
				
			||||||
					navigatePrev();
 | 
										navigatePrev();
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else {
 | 
									else {
 | 
				
			||||||
| 
						 | 
					@ -5267,7 +5308,7 @@
 | 
				
			||||||
				if( lastSlideShortcut ) {
 | 
									if( lastSlideShortcut ) {
 | 
				
			||||||
					slide( Number.MAX_VALUE );
 | 
										slide( Number.MAX_VALUE );
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else if( !isOverview() && config.navigationMode === 'linear' ) {
 | 
									else if( !isOverview() && useLinearMode ) {
 | 
				
			||||||
					navigateNext();
 | 
										navigateNext();
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else {
 | 
									else {
 | 
				
			||||||
| 
						 | 
					@ -5276,7 +5317,7 @@
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// K, UP
 | 
								// K, UP
 | 
				
			||||||
			else if( keyCode === 75 || keyCode === 38 ) {
 | 
								else if( keyCode === 75 || keyCode === 38 ) {
 | 
				
			||||||
				if( !isOverview() && config.navigationMode === 'linear' ) {
 | 
									if( !isOverview() && useLinearMode ) {
 | 
				
			||||||
					navigatePrev();
 | 
										navigatePrev();
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else {
 | 
									else {
 | 
				
			||||||
| 
						 | 
					@ -5285,7 +5326,7 @@
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// J, DOWN
 | 
								// J, DOWN
 | 
				
			||||||
			else if( keyCode === 74 || keyCode === 40 ) {
 | 
								else if( keyCode === 74 || keyCode === 40 ) {
 | 
				
			||||||
				if( !isOverview() && config.navigationMode === 'linear' ) {
 | 
									if( !isOverview() && useLinearMode ) {
 | 
				
			||||||
					navigateNext();
 | 
										navigateNext();
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else {
 | 
									else {
 | 
				
			||||||
| 
						 | 
					@ -5944,6 +5985,15 @@
 | 
				
			||||||
		// Returns the speaker notes string for a slide, or null
 | 
							// Returns the speaker notes string for a slide, or null
 | 
				
			||||||
		getSlideNotes: getSlideNotes,
 | 
							getSlideNotes: getSlideNotes,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Returns an array with all horizontal/vertical slides in the deck
 | 
				
			||||||
 | 
							getHorizontalSlides: getHorizontalSlides,
 | 
				
			||||||
 | 
							getVerticalSlides: getVerticalSlides,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Checks if the presentation contains two or more
 | 
				
			||||||
 | 
							// horizontal/vertical slides
 | 
				
			||||||
 | 
							hasHorizontalSlides: hasHorizontalSlides,
 | 
				
			||||||
 | 
							hasVerticalSlides: hasVerticalSlides,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Returns the previous slide element, may be null
 | 
							// Returns the previous slide element, may be null
 | 
				
			||||||
		getPreviousSlide: function() {
 | 
							getPreviousSlide: function() {
 | 
				
			||||||
			return previousSlide;
 | 
								return previousSlide;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue