From f6dc5312980150c68510a955e4ce8e5d2691b412 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Dec 2011 22:41:19 -0800 Subject: [PATCH] slides three or more steps away from current are now hidden --- js/reveal.js | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/js/reveal.js b/js/reveal.js index 79437aed..3dddf7d0 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -282,16 +282,23 @@ var Reveal = (function(){ index = Math.max(Math.min(index, slides.length - 1), 0); slides[index].setAttribute('class', 'present'); - - // Any element previous to index is given the 'past' class - slides.slice(0, index).map(function(element){ - element.setAttribute('class', 'past'); - }); - - // Any element subsequent to index is given the 'future' class - slides.slice(index + 1).map(function(element){ - element.setAttribute('class', 'future'); - }); + + for( var i = 0; i < slides.length; i++ ) { + var slide = slides[i]; + + // Optimization; hide all slides that are three or more steps + // away from the present slide + slide.style.display = Math.abs( index - i ) > 3 ? 'none' : 'block'; + + if( i < index ) { + // Any element previous to index is given the 'past' class + slide.setAttribute('class', 'past'); + } + else if( i > index ) { + // Any element subsequent to index is given the 'future' class + slide.setAttribute('class', 'future'); + } + } } else { // Since there are no slides we can't be anywhere beyond the