new API methods for getting horizontal/vertical slides, force linear navigation for one-dimensional decks
This commit is contained in:
parent
1766e37a63
commit
bd1e82d19a
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
|
||||||
|
62
js/reveal.js
62
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 {
|
||||||
@ -4472,6 +4472,43 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of objects where each object represents the
|
* Returns an array of objects where each object represents the
|
||||||
* attributes on its respective slide.
|
* attributes on its respective slide.
|
||||||
@ -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…
Reference in New Issue
Block a user