diff options
Diffstat (limited to 'dep')
| -rw-r--r-- | dep/impress.js | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/dep/impress.js b/dep/impress.js index 2529e26..8115af1 100644 --- a/dep/impress.js +++ b/dep/impress.js @@ -553,15 +553,33 @@ var prev = steps.indexOf( activeStep ) - 1; prev = prev >= 0 ? steps[ prev ] : steps[ steps.length-1 ]; + // when backing through a slide, clear its inner steps + $$('.innerStep.stepped', activeStep).forEach( function (elem) { + elem.classList.remove('stepped'); + }); + return goto(prev); }; + var inner = { + next: function () { + var innerNext = activeStep.querySelector('.innerStep:not(.stepped)'); + innerNext.classList.add('stepped'); + } + }; + // `next` API function goes to next step (in document order) var next = function () { - var next = steps.indexOf( activeStep ) + 1; - next = next < steps.length ? steps[ next ] : steps[ 0 ]; + // if there are unshown inner steps, show next one instead of next slide + if(activeStep.querySelectorAll('.innerStep:not(.stepped)').length) { + inner.next(); + triggerEvent(activeStep, "impress:innerstep"); + } else { + var next = steps.indexOf( activeStep ) + 1; + next = next < steps.length ? steps[ next ] : steps[ 0 ]; - return goto(next); + return goto(next); + } }; // Adding some useful classes to step elements. |
