From: Daniel Ruf Date: Sat, 16 Jun 2018 07:27:57 +0000 (+0200) Subject: Use pull request #11041 from DanielRuf/fix/reveal-destroy-remove-open-classes-10626... X-Git-Tag: v6.5.0-rc.1^2~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf2184fc040418039f14e6aa93ab4da6fbe9a7b5;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Use pull request #11041 from DanielRuf/fix/reveal-destroy-remove-open-classes-10626 for v6.5.0 21976813a fix: remove the open classes if no visible reveal exists after destroying one c3f0e101e fix: properly call removeRevealOpenClasses, add comments, remove a few empty lines 74006f466 fix: use right reference to the local context 7f30ef811 fix: make removeRevealOpenClasses and addRevealOpenClasses available for the whole component Co-Authored-By: Daniel Ruf Signed-off-by: Nicolas Coden --- diff --git a/js/foundation.reveal.js b/js/foundation.reveal.js index 50f4d69ee..f12966f60 100644 --- a/js/foundation.reveal.js +++ b/js/foundation.reveal.js @@ -273,11 +273,6 @@ class Reveal extends Plugin { var _this = this; - function addRevealOpenClasses() { - - $('html').addClass('is-reveal-open'); - } - // Motion UI method of reveal if (this.options.animationIn) { function afterAnimation(){ @@ -287,7 +282,7 @@ class Reveal extends Plugin { 'tabindex': -1 }) .focus(); - addRevealOpenClasses(); + _this.addRevealOpenClasses(); Keyboard.trapFocus(_this.$element); } if (this.options.overlay) { @@ -317,7 +312,7 @@ class Reveal extends Plugin { .focus(); Keyboard.trapFocus(this.$element); - addRevealOpenClasses(); + this._addRevealOpenClasses(); this._extraHandlers(); @@ -328,6 +323,14 @@ class Reveal extends Plugin { this.$element.trigger('open.zf.reveal'); } + _addRevealOpenClasses() { + $('html').addClass('is-reveal-open'); + } + + _removeRevealOpenClasses() { + $('html').removeClass('is-reveal-open'); + } + /** * Adds extra event handlers for the body and window if necessary. * @private @@ -409,7 +412,7 @@ class Reveal extends Plugin { var scrollTop = parseInt($("html").css("top")); if ($('.reveal:visible').length === 0) { - $('html').removeClass('is-reveal-open'); + _this._removeRevealOpenClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal } Keyboard.releaseFocus(_this.$element); @@ -469,6 +472,10 @@ class Reveal extends Plugin { this.$element.hide().off(); this.$anchor.off('.zf'); $(window).off(`.zf.reveal:${this.id}`); + + if ($('.reveal:visible').length === 0) { + this._removeRevealOpenClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal + } }; }