From c904cef8649310a4c37d53420be3fdc186fedc4f Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Fri, 21 Sep 2012 08:58:21 -0400 Subject: [PATCH] add option for disabling overview mode (closes #145) --- README.md | 3 ++ index.html | 38 +++++++++++++++++ js/reveal.js | 107 ++++++++++++++++++++++++++--------------------- js/reveal.min.js | 12 +++--- 4 files changed, 107 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 2e2c7e89..596c6bfb 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,9 @@ Reveal.initialize({ // Enable keyboard shortcuts for navigation keyboard: true, + // Enable the slide overview mode + overview: true, + // Loop the presentation loop: false, diff --git a/index.html b/index.html index 5c590445..ac7b3f02 100644 --- a/index.html +++ b/index.html @@ -333,5 +333,43 @@ function linkify( selector ) { + + +
+ + + + + + + + + +
+ + Fork me on GitHub + + + diff --git a/js/reveal.js b/js/reveal.js index b16b529d..9b13cace 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -26,6 +26,9 @@ var Reveal = (function(){ // Enable keyboard shortcuts for navigation keyboard: true, + // Enable the slide overview mode + overview: true, + // Loop the presentation loop: false, @@ -531,48 +534,53 @@ var Reveal = (function(){ * can't be improved. */ function activateOverview() { + + if( config.overview ) { - dom.wrapper.classList.add( 'overview' ); + dom.wrapper.classList.add( 'overview' ); - var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); + var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); - for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) { - var hslide = horizontalSlides[i], - htransform = 'translateZ(-2500px) translate(' + ( ( i - indexh ) * 105 ) + '%, 0%)'; + for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) { + var hslide = horizontalSlides[i], + htransform = 'translateZ(-2500px) translate(' + ( ( i - indexh ) * 105 ) + '%, 0%)'; + + hslide.setAttribute( 'data-index-h', i ); + hslide.style.display = 'block'; + hslide.style.WebkitTransform = htransform; + hslide.style.MozTransform = htransform; + hslide.style.msTransform = htransform; + hslide.style.OTransform = htransform; + hslide.style.transform = htransform; - hslide.setAttribute( 'data-index-h', i ); - hslide.style.display = 'block'; - hslide.style.WebkitTransform = htransform; - hslide.style.MozTransform = htransform; - hslide.style.msTransform = htransform; - hslide.style.OTransform = htransform; - hslide.style.transform = htransform; + if( !hslide.classList.contains( 'stack' ) ) { + // Navigate to this slide on click + hslide.addEventListener( 'click', onOverviewSlideClicked, true ); + } - if( !hslide.classList.contains( 'stack' ) ) { - // Navigate to this slide on click - hslide.addEventListener( 'click', onOverviewSlideClicked, true ); + var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( 'section' ) ); + + for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) { + var vslide = verticalSlides[j], + vtransform = 'translate(0%, ' + ( ( j - ( i === indexh ? indexv : 0 ) ) * 105 ) + '%)'; + + vslide.setAttribute( 'data-index-h', i ); + vslide.setAttribute( 'data-index-v', j ); + vslide.style.display = 'block'; + vslide.style.WebkitTransform = vtransform; + vslide.style.MozTransform = vtransform; + vslide.style.msTransform = vtransform; + vslide.style.OTransform = vtransform; + vslide.style.transform = vtransform; + + // Navigate to this slide on click + vslide.addEventListener( 'click', onOverviewSlideClicked, true ); + } + } - - var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( 'section' ) ); - for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) { - var vslide = verticalSlides[j], - vtransform = 'translate(0%, ' + ( ( j - ( i === indexh ? indexv : 0 ) ) * 105 ) + '%)'; - - vslide.setAttribute( 'data-index-h', i ); - vslide.setAttribute( 'data-index-v', j ); - vslide.style.display = 'block'; - vslide.style.WebkitTransform = vtransform; - vslide.style.MozTransform = vtransform; - vslide.style.msTransform = vtransform; - vslide.style.OTransform = vtransform; - vslide.style.transform = vtransform; - - // Navigate to this slide on click - vslide.addEventListener( 'click', onOverviewSlideClicked, true ); - } - } + } /** @@ -580,24 +588,29 @@ var Reveal = (function(){ * active slide. */ function deactivateOverview() { - dom.wrapper.classList.remove( 'overview' ); + + if( config.overview ) { - var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) ); + dom.wrapper.classList.remove( 'overview' ); - for( var i = 0, len = slides.length; i < len; i++ ) { - var element = slides[i]; + var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) ); - // Resets all transforms to use the external styles - element.style.WebkitTransform = ''; - element.style.MozTransform = ''; - element.style.msTransform = ''; - element.style.OTransform = ''; - element.style.transform = ''; + for( var i = 0, len = slides.length; i < len; i++ ) { + var element = slides[i]; - element.removeEventListener( 'click', onOverviewSlideClicked ); + // Resets all transforms to use the external styles + element.style.WebkitTransform = ''; + element.style.MozTransform = ''; + element.style.msTransform = ''; + element.style.OTransform = ''; + element.style.transform = ''; + + element.removeEventListener( 'click', onOverviewSlideClicked ); + } + + slide(); + } - - slide(); } /** diff --git a/js/reveal.min.js b/js/reveal.min.js index c32e4877..d5a63038 100644 --- a/js/reveal.min.js +++ b/js/reveal.min.js @@ -5,7 +5,7 @@ * * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se */ -var Reveal=(function(){var j=".reveal .slides>section",b=".reveal .slides>section.present>section",M={controls:true,progress:true,history:false,keyboard:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},k=0,c=0,v,D,ab=[],d={},O="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,l="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,w=0,i=0,A=0,V={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40}; +var Reveal=(function(){var j=".reveal .slides>section",b=".reveal .slides>section.present>section",M={controls:true,progress:true,history:false,keyboard:true,overview:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},k=0,c=0,v,D,ab=[],d={},O="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,l="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,w=0,i=0,A=0,V={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40}; function g(ac){if((!l&&!O)){document.body.setAttribute("class","no-transforms");return;}q(M,ac);d.theme=document.querySelector("#theme");d.wrapper=document.querySelector(".reveal"); d.progress=document.querySelector(".reveal .progress");d.progressbar=document.querySelector(".reveal .progress span");if(M.controls){d.controls=document.querySelector(".reveal .controls"); d.controlsLeft=document.querySelector(".reveal .controls .left");d.controlsRight=document.querySelector(".reveal .controls .right");d.controlsUp=document.querySelector(".reveal .controls .up"); @@ -34,15 +34,15 @@ if(ad>V.threshold&&Math.abs(ad)>Math.abs(ac)){V.handled=true;y();}else{if(ad<-V. r();}else{if(ac<-V.threshold){V.handled=true;C();}}}}}}ah.preventDefault();}}function R(ac){V.handled=false;}function m(ac){clearTimeout(w);w=setTimeout(function(){var ad=ac.detail||-ac.wheelDelta; if(ad>0){u();}else{T();}},100);}function t(ac){G();}function I(){if(O&&!("msPerspective" in document.body.style)){var ad=document.querySelectorAll(".reveal .slides section a:not(.image)"); for(var ae=0,ac=ad.length;ae'+af.innerHTML+"";}}}}function F(){d.wrapper.classList.add("overview");var ac=Array.prototype.slice.call(document.querySelectorAll(j)); +af.innerHTML=''+af.innerHTML+"";}}}}function F(){if(M.overview){d.wrapper.classList.add("overview");var ac=Array.prototype.slice.call(document.querySelectorAll(j)); for(var ah=0,af=ac.length;ah3?"none":"block";}ah[ag].classList.remove("past");ah[ag].classList.remove("present");ah[ag].classList.remove("future");if(agaf){ah[ag].classList.add("future");}}if(ac.querySelector("section")){ah[ag].classList.add("stack");}}ah[af].classList.add("present");var ae=ah[af].getAttribute("data-state");