|  | @@ -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 
 |