merge prev/next navigation pull request with modifications

edit
Hakim El Hattab 2012-03-28 01:16:16 -04:00
parent 732ed921eb
commit 0cd3b8d430
2 changed files with 36 additions and 16 deletions

View File

@ -66,6 +66,7 @@ Reveal.initialize({
- Support for mouse wheel navigation ([naugtur](https://github.com/naugtur)) - Support for mouse wheel navigation ([naugtur](https://github.com/naugtur))
- Delayed updates to URL hash to work around a bug in Chrome - Delayed updates to URL hash to work around a bug in Chrome
- Included a classList polyfill for IE9 - Included a classList polyfill for IE9
- Support for wireless presenter keys
#### 1.1 #### 1.1

View File

@ -659,22 +659,41 @@ var Reveal = (function(){
slide(); slide();
} }
} }
function navigatePrev() {
if( availableRoutes().up ) navigateUp(); /**
else { * Navigates backwards, prioritized in the following order:
// Go to last slide in previous vertical stack * 1) Previous fragment
var pastSlides = document.querySelectorAll('#reveal .slides>section.past'); * 2) Previous vertical slide
if( pastSlides.length > 0 ) { * 3) Previous horizontal slide
var prevVerticalSlides = pastSlides[pastSlides.length - 1].querySelectorAll('section'); */
indexv = prevVerticalSlides.length > 0 ? prevVerticalSlides.length - 1 : 0; function navigatePrev() {
indexh --; // Prioritize revealing fragments
slide(); if( previousFragment() === false ) {
} if( availableRoutes().up ) {
} navigateUp();
} }
function navigateNext() { else {
availableRoutes().down ? navigateDown() : navigateRight(); // Fetch the previous horizontal slide, if there is one
} var previousSlide = document.querySelector( '#reveal .slides>section.past:nth-child(' + indexh + ')' );
if( previousSlide ) {
indexv = ( previousSlide.querySelectorAll('section').length + 1 ) || 0;
indexh --;
slide();
}
}
}
}
/**
* Same as #navigatePrev() but navigates forwards.
*/
function navigateNext() {
// Prioritize revealing fragments
if( nextFragment() === false ) {
availableRoutes().down ? navigateDown() : navigateRight();
}
}
// Expose some methods publicly // Expose some methods publicly
return { return {