From b05bb5c7ba6b00953bc338232998a7d4752de948 Mon Sep 17 00:00:00 2001 From: Andy Joslin Date: Thu, 27 Feb 2014 08:53:55 -0500 Subject: [PATCH] reveal: fix locked staying true if animation is none --- js/foundation/foundation.reveal.js | 37 +++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/js/foundation/foundation.reveal.js b/js/foundation/foundation.reveal.js index 45c69487f..fd6649c8d 100644 --- a/js/foundation/foundation.reveal.js +++ b/js/foundation/foundation.reveal.js @@ -255,7 +255,11 @@ el.detach().appendTo(rootElement); } - if (/pop/i.test(settings.animation)) { + var animData = getAnimationData(settings.animation); + if (!animData.animate) { + this.locked = false; + } + if (animData.pop) { css.top = $(window).scrollTop() - el.data('offset') + 'px'; var end_css = { top: $(window).scrollTop() + el.data('css-top') + 'px', @@ -273,7 +277,7 @@ }.bind(this), settings.animation_speed / 2); } - if (/fade/i.test(settings.animation)) { + if (animData.fade) { css.top = $(window).scrollTop() + el.data('css-top') + 'px'; var end_css = {opacity: 1}; @@ -294,7 +298,7 @@ var settings = this.settings; // should we animate the background? - if (/fade/i.test(settings.animation)) { + if (getAnimationData(settings.animation).fade) { return el.fadeIn(settings.animation_speed / 2); } @@ -307,7 +311,11 @@ // is modal if (css) { var settings = el.data(this.attr_name(true) + '-init'); - if (/pop/i.test(settings.animation)) { + var animData = getAnimationData(settings.animation); + if (!animData.animate) { + this.locked = false; + } + if (animData.pop) { var end_css = { top: - $(window).scrollTop() - el.data('offset') + 'px', opacity: 0 @@ -323,7 +331,7 @@ }.bind(this), settings.animation_speed / 2); } - if (/fade/i.test(settings.animation)) { + if (animData.fade) { var end_css = {opacity: 0}; return setTimeout(function () { @@ -342,7 +350,7 @@ var settings = this.settings; // should we animate the background? - if (/fade/i.test(settings.animation)) { + if (getAnimationData(settings.animation).fade) { return el.fadeOut(settings.animation_speed / 2); } @@ -399,4 +407,21 @@ reflow : function () {} }; + + /* + * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true} + * getAnimationData('fade') // {animate: true, pop: false, fade: true} + * getAnimationData('pop') // {animate: true, pop: true, fade: false} + * getAnimationData('foo') // {animate: false, pop: false, fade: false} + * getAnimationData(null) // {animate: false, pop: false, fade: false} + */ + function getAnimationData(str) { + var fade = /fade/i.test(str); + var pop = /pop/i.test(str); + return { + animate: fade || pop, + pop: pop, + fade: fade + }; + } }(jQuery, this, this.document)); -- 2.47.2