From 25c46ccc37f932c04d5c2af7de1d12c6cdaed055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Chr=C3=A9tien?= Date: Sun, 8 Mar 2015 18:11:01 +0100 Subject: [PATCH] Fix slide numbering for custom slide number formatting. Numbering was off when dealing with fragments. --- js/reveal.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/js/reveal.js b/js/reveal.js index 3edd301c..58edc561 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -2476,11 +2476,12 @@ } var totalSlides = getTotalSlides(); + var currentSlide = getSlidePastCount() + 1; dom.slideNumber.innerHTML = format.replace( /h/g, indexh ) .replace( /v/g, indexv ) - .replace( /c/g, Math.round( getProgress() * totalSlides ) + 1 ) - .replace( /t/g, totalSlides + 1 ); + .replace( /c/g, currentSlide ) + .replace( /t/g, totalSlides ); } } @@ -2966,15 +2967,14 @@ } /** - * Returns a value ranging from 0-1 that represents - * how far into the presentation we have navigated. + * Returns the number of past slides. This can be used as a global + * flattened index for slides. */ - function getProgress() { + function getSlidePastCount() { var horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); - // The number of past and total slides - var totalCount = getTotalSlides(); + // The number of past slides var pastCount = 0; // Step through all slides and count the past ones @@ -3006,6 +3006,20 @@ } + return pastCount; + + } + + /** + * Returns a value ranging from 0-1 that represents + * how far into the presentation we have navigated. + */ + function getProgress() { + + // The number of past and total slides + var totalCount = getTotalSlides(); + var pastCount = getSlidePastCount(); + if( currentSlide ) { var allFragments = currentSlide.querySelectorAll( '.fragment' );