Browse Source

Added slide numbers options and the css files updated as well.

the *.min.js didn't chaged yet.
uriel 11 years ago
parent
commit
7b63cda19d

+ 9 - 0
css/reveal.css

@@ -391,6 +391,15 @@ body {
 	        transition: all 0.2s ease;
 }
 
+.reveal .controls .slide-number {
+	font-size: 11px;
+	top: 10px;
+	left: -10px;
+	opacity: 0.5;
+	width: 45px;
+	text-align: center;
+}
+
 .reveal .controls div.enabled {
 	opacity: 0.7;
 	cursor: pointer;

+ 4 - 0
css/theme/beige.css

@@ -115,6 +115,10 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #8b743d; }
 
+.reveal .controls .slide-number {
+  color: #8b743d;
+}
+
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #c0a86e; }
 

+ 4 - 0
css/theme/default.css

@@ -115,6 +115,10 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #13daec; }
 
+.reveal .controls .slide-number {
+  color: #13daec;
+}
+
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #71e9f4; }
 

+ 4 - 0
css/theme/moon.css

@@ -115,6 +115,10 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #268bd2; }
 
+.reveal .controls .slide-number {
+  color: #268bd2;
+}
+
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #78b9e6; }
 

+ 3 - 0
css/theme/night.css

@@ -103,6 +103,9 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #e7ad52; }
 
+.reveal .controls .slide-number {
+  color: #e7ad52;
+}
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #f3d7ac; }
 

+ 3 - 0
css/theme/serif.css

@@ -105,6 +105,9 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #51483d; }
 
+.reveal .controls .slide-number {
+  color: #51483d;
+}
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #8b7c69; }
 

+ 3 - 0
css/theme/simple.css

@@ -105,6 +105,9 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: darkblue; }
 
+.reveal .controls .slide-number {
+  color: darkblue;
+}
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #0000f1; }
 

+ 3 - 0
css/theme/sky.css

@@ -112,6 +112,9 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #3b759e; }
 
+.reveal .controls .slide-number {
+  color: #3b759e;
+}
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #74a7cb; }
 

+ 3 - 0
css/theme/solarized.css

@@ -115,6 +115,9 @@ body {
 .reveal .controls div.navigate-down.enabled {
   border-top-color: #268bd2; }
 
+.reveal .controls .slide-number {
+  color: #268bd2;
+}
 .reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #78b9e6; }
 

+ 34 - 2
js/reveal.js

@@ -96,7 +96,10 @@ var Reveal = (function(){
 			viewDistance: 3,
 
 			// Script dependencies to load
-			dependencies: []
+			dependencies: [],
+
+			// Indicates whether to show the slides number
+			showSlideNumber: false
 		},
 
 		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
@@ -347,7 +350,8 @@ var Reveal = (function(){
 			'<div class="navigate-left"></div>' +
 			'<div class="navigate-right"></div>' +
 			'<div class="navigate-up"></div>' +
-			'<div class="navigate-down"></div>' );
+			'<div class="navigate-down"></div>' +
+			'<div class="slide-number"></div>' );
 
 		// State background element [DEPRECATED]
 		createSingletonNode( dom.wrapper, 'div', 'state-background', null );
@@ -366,6 +370,7 @@ var Reveal = (function(){
 		dom.controlsPrev = toArray( document.querySelectorAll( '.navigate-prev' ) );
 		dom.controlsNext = toArray( document.querySelectorAll( '.navigate-next' ) );
 
+		dom.slideNumbers = toArray(document.querySelectorAll( '.slide-number' ));
 	}
 
 	/**
@@ -591,6 +596,11 @@ var Reveal = (function(){
 			dom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );
 		} );
 
+		if( config.showSlideNumber ) {
+			['ready', 'slidechanged'].forEach( function(eventName) { 
+				document.addEventListener( eventName, onSlideChanged, false ); 
+			} );
+		}
 	}
 
 	/**
@@ -627,6 +637,11 @@ var Reveal = (function(){
 			dom.controlsNext.forEach( function( el ) { el.removeEventListener( eventName, onNavigateNextClicked, false ); } );
 		} );
 
+		if( config.showSlideNumber ) {
+			['ready', 'slidechanged'].forEach( function(eventName) { 
+				document.removeEventListener( eventName, onSlideChanged, false ); 
+			} );
+		}
 	}
 
 	/**
@@ -2636,6 +2651,23 @@ var Reveal = (function(){
 
 	}
 
+	/**
+	 * Invoked when slide changed and on the first time slides are ready
+	 */
+	function onSlideChanged( event ) {
+		var element = dom.slideNumbers;
+
+		// change the number of the page using 'indexh/indexv' format
+		var indexString = ( event.indexh + 1 ).toString();
+		if( indexv > 0 ) {
+			indexString += ' / ' + indexv.toString();
+		}
+
+		element.forEach( function( elm ) { 
+			elm.innerHTML = indexString; 
+		} );
+	}
+
 
 	// --------------------------------------------------------------------//
 	// ------------------------------- API --------------------------------//