fix previous slide navigation logic (closes #397)
[reveal.js.git] / js / reveal.js
index 14d828986efcc2f5c8d7d418c22c01195c0057a5..516d114e83d2c950da5e42c3a0a4f281aeb2593c 100644 (file)
@@ -73,6 +73,9 @@ var Reveal = (function(){
                        // Transition style
                        transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
 
+                       // Transition speed
+                       transitionSpeed: 'default', // default/fast/slow
+
                        // Script dependencies to load
                        dependencies: []
                },
@@ -181,7 +184,7 @@ var Reveal = (function(){
                dom.slides = document.querySelector( '.reveal .slides' );
 
                // Progress bar
-               if( !dom.wrapper.querySelector( '.progress' ) && config.progress ) {
+               if( !dom.wrapper.querySelector( '.progress' ) ) {
                        var progressElement = document.createElement( 'div' );
                        progressElement.classList.add( 'progress' );
                        progressElement.innerHTML = '<span></span>';
@@ -189,7 +192,7 @@ var Reveal = (function(){
                }
 
                // Arrow controls
-               if( !dom.wrapper.querySelector( '.controls' ) && config.controls ) {
+               if( !dom.wrapper.querySelector( '.controls' ) ) {
                        var controlsElement = document.createElement( 'aside' );
                        controlsElement.classList.add( 'controls' );
                        controlsElement.innerHTML = '<div class="navigate-left"></div>' +
@@ -340,6 +343,8 @@ var Reveal = (function(){
 
                dom.wrapper.classList.add( config.transition );
 
+               dom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );
+
                if( dom.controls ) {
                        dom.controls.style.display = ( config.controls && dom.controls ) ? 'block' : 'none';
                }
@@ -1622,7 +1627,7 @@ var Reveal = (function(){
                                if( previousSlide ) {
                                        indexv = ( previousSlide.querySelectorAll( 'section' ).length + 1 ) || undefined;
                                        indexh --;
-                                       slide();
+                                       slide( indexh, indexv );
                                }
                        }
                }
@@ -2045,6 +2050,17 @@ var Reveal = (function(){
                        return config;
                },
 
+               // Returns an index (1-based) of the current fragment
+               getCurrentFragmentIndex : function() {
+                       if( currentSlide ) {
+                               var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );
+
+                               if( visibleFragments.length ) {
+                                       return visibleFragments.length;
+                               }
+                       }
+               },
+
                // Helper method, retrieves query string as a key/value hash
                getQueryHash: function() {
                        var query = {};