diff --git a/README.md b/README.md
index 602d81ce..3f953627 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ Markup heirarchy needs to be ``
`
### Configuration
-At the end of your page, after ````, you need to initialize reveal by running the following code. Note that all config values are optional.
+At the end of your page, after ````, you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below.
```javascript
Reveal.initialize({
@@ -36,13 +36,17 @@ Reveal.initialize({
// Display a presentation progress bar
progress: true,
- // If true; each slide will be pushed to the browser history
- history: true,
+ // Push each slide change to the browser history
+ history: false,
- // Loops the presentation, defaults to false
+ // Loop the presentation
loop: false,
- // Flags if mouse wheel navigation should be enabled
+ // Number of milliseconds between automatically proceeding to the
+ // next slide, disabled when set to 0
+ autoSlide: 0,
+
+ // Enable slide navigation via mouse wheel
mouseWheel: true,
// Apply a 3D roll to links on hover
@@ -170,6 +174,7 @@ You can change the appearance of the speaker notes by editing the file at `plugi
- Slide notes by [rmurphey](https://github.com/rmurphey)
- Bumped up default font-size for code samples
- Added beige theme
+- Added 'autoSlide' config
#### 1.3
- Revised keyboard shortcuts, including ESC for overview, N for next, P for previous. Thanks [mahemoff](https://github.com/mahemoff)
diff --git a/index.html b/index.html
index 7f05d120..d67c1791 100644
--- a/index.html
+++ b/index.html
@@ -279,29 +279,14 @@ function linkify( selector ) {
// event.previousSlide, event.currentSlide, event.indexh, event.indexv
} );
+ // Full list of configuration options available here:
+ // https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
- // Display controls in the bottom right corner
controls: true,
-
- // Display a presentation progress bar
progress: true,
-
- // If true; each slide will be pushed to the browser history
history: true,
- // Loops the presentation, defaults to false
- loop: false,
-
- // Flags if mouse wheel navigation should be enabled
- mouseWheel: true,
-
- // Apply a 3D roll to links on hover
- rollingLinks: true,
-
- // UI style
theme: query.theme || 'default', // default/neon/beige
-
- // Transition style
transition: query.transition || 'default' // default/cube/page/concave/linear(2d)
});
} );
diff --git a/js/reveal.js b/js/reveal.js
index 856b1aa1..9276da3a 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -16,16 +16,35 @@ var Reveal = (function(){
indexh = 0,
indexv = 0,
- // Configurations options, can be overridden at initialization time
+ // Configurations defaults, can be overridden at initialization time
config = {
+ // Display controls in the bottom right corner
controls: true,
- progress: false,
+
+ // Display a presentation progress bar
+ progress: true,
+
+ // Push each slide change to the browser history
history: false,
+
+ // Loop the presentation
loop: false,
+
+ // Number of milliseconds between automatically proceeding to the
+ // next slide, disabled when set to 0
+ autoSlide: 0,
+
+ // Enable slide navigation via mouse wheel
mouseWheel: true,
+
+ // Apply a 3D roll to links on hover
rollingLinks: true,
- transition: 'default',
- theme: 'default'
+
+ // UI style
+ theme: 'default', // default/neon/beige
+
+ // Transition style
+ transition: 'default' // default/cube/page/concave/linear(2d)
},
// Slides may hold a data-state attribute which we pick up and apply
@@ -55,6 +74,9 @@ var Reveal = (function(){
// Throttles mouse wheel navigation
mouseWheelTimeout = 0,
+ // An interval used to automatically move on to the next slide
+ autoSlideTimeout = 0,
+
// Delays updates to the URL due to a Chrome thumbnailer bug
writeURLTimeout = 0,
@@ -107,6 +129,9 @@ var Reveal = (function(){
// Read the initial hash
readURL();
+ // Start auto-sliding if it's enabled
+ cueAutoSlide();
+
// Set up hiding of the browser address bar
if( navigator.userAgent.match( /(iphone|ipod|android)/i ) ) {
// Give the page some scrollable overflow
@@ -121,8 +146,8 @@ var Reveal = (function(){
}
function configure() {
- // Fall back on the 2D transform theme 'linear'
if( supports3DTransforms === false ) {
+ // Fall back on the 2D transform theme 'linear'
config.transition = 'linear';
}
@@ -269,20 +294,21 @@ var Reveal = (function(){
case 13: if( overviewIsActive() ) { deactivateOverview(); triggered = true; } break;
}
+ // If the input resulted in a triggered action we should prevent
+ // the browsers default behavior
if( triggered ) {
event.preventDefault();
}
else if ( event.keyCode === 27 && supports3DTransforms ) {
- if( overviewIsActive() ) {
- deactivateOverview();
- }
- else {
- activateOverview();
- }
+ toggleOverview();
event.preventDefault();
}
+ // If auto-sliding is enabled we need to cue up
+ // another timeout
+ cueAutoSlide();
+
}
/**
@@ -840,6 +866,15 @@ var Reveal = (function(){
return false;
}
+
+ function cueAutoSlide() {
+ clearTimeout( autoSlideTimeout );
+
+ // Cue the next auto-slide if enabled
+ if( config.autoSlide ) {
+ autoSlideTimeout = setTimeout( navigateNext, config.autoSlide );
+ }
+ }
/**
* Triggers a navigation to the specified indices.
@@ -909,6 +944,10 @@ var Reveal = (function(){
if( nextFragment() === false ) {
availableRoutes().down ? navigateDown() : navigateRight();
}
+
+ // If auto-sliding is enabled we need to cue up
+ // another timeout
+ cueAutoSlide();
}
/**