add autoSlideStoppable config value, allows autoSlide to be aborted on user input

This commit is contained in:
Hakim El Hattab 2013-10-11 08:40:40 -04:00
parent 1421934fde
commit e94f62a58f
3 changed files with 34 additions and 10 deletions

View file

@ -97,6 +97,9 @@ Reveal.initialize({
// by using a data-autoslide attribute on your slides // by using a data-autoslide attribute on your slides
autoSlide: 0, autoSlide: 0,
// Stop auto-sliding after user input
autoSlideStoppable: true,
// Enable slide navigation via mouse wheel // Enable slide navigation via mouse wheel
mouseWheel: false, mouseWheel: false,

View file

@ -68,6 +68,9 @@ var Reveal = (function(){
// by using a data-autoslide attribute on your slides // by using a data-autoslide attribute on your slides
autoSlide: 0, autoSlide: 0,
// Stop auto-sliding after user input
autoSlideStoppable: false,
// Enable slide navigation via mouse wheel // Enable slide navigation via mouse wheel
mouseWheel: false, mouseWheel: false,
@ -2349,11 +2352,21 @@ var Reveal = (function(){
// ----------------------------- EVENTS -------------------------------// // ----------------------------- EVENTS -------------------------------//
// --------------------------------------------------------------------// // --------------------------------------------------------------------//
/**
* Called by all event handlers that are based on user
* input.
*/
function onUserInput( event ) {
if( config.autoSlideStoppable ) {
config.autoSlide = 0;
cancelAutoSlide();
}
}
/** /**
* Handler for the document level 'keydown' event. * Handler for the document level 'keydown' event.
*
* @param {Object} event
*/ */
function onDocumentKeyDown( event ) { function onDocumentKeyDown( event ) {
@ -2453,6 +2466,8 @@ var Reveal = (function(){
// another timeout // another timeout
cueAutoSlide(); cueAutoSlide();
onUserInput( event );
} }
/** /**
@ -2477,6 +2492,8 @@ var Reveal = (function(){
} ); } );
} }
onUserInput( event );
} }
/** /**
@ -2583,6 +2600,8 @@ var Reveal = (function(){
onTouchStart( event ); onTouchStart( event );
} }
onUserInput( event );
} }
/** /**
@ -2646,17 +2665,19 @@ var Reveal = (function(){
slide( slideIndex ); slide( slideIndex );
onUserInput( event );
} }
/** /**
* Event handler for navigation control buttons. * Event handler for navigation control buttons.
*/ */
function onNavigateLeftClicked( event ) { event.preventDefault(); navigateLeft(); } function onNavigateLeftClicked( event ) { event.preventDefault(); navigateLeft(); onUserInput(); }
function onNavigateRightClicked( event ) { event.preventDefault(); navigateRight(); } function onNavigateRightClicked( event ) { event.preventDefault(); navigateRight(); onUserInput(); }
function onNavigateUpClicked( event ) { event.preventDefault(); navigateUp(); } function onNavigateUpClicked( event ) { event.preventDefault(); navigateUp(); onUserInput(); }
function onNavigateDownClicked( event ) { event.preventDefault(); navigateDown(); } function onNavigateDownClicked( event ) { event.preventDefault(); navigateDown(); onUserInput(); }
function onNavigatePrevClicked( event ) { event.preventDefault(); navigatePrev(); } function onNavigatePrevClicked( event ) { event.preventDefault(); navigatePrev(); onUserInput(); }
function onNavigateNextClicked( event ) { event.preventDefault(); navigateNext(); } function onNavigateNextClicked( event ) { event.preventDefault(); navigateNext(); onUserInput(); }
/** /**
* Handler for the window level 'hashchange' event. * Handler for the window level 'hashchange' event.

4
js/reveal.min.js vendored

File diff suppressed because one or more lines are too long