Преглед изворни кода

slides three or more steps away from current are now hidden

Hakim El Hattab пре 13 година
родитељ
комит
f6dc531298
1 измењених фајлова са 17 додато и 10 уклоњено
  1. 17 10
      js/reveal.js

+ 17 - 10
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