From 7aa203150fc1a2ec79c681c13f0d486d531746eb Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Sun, 12 Mar 2023 23:57:48 +0200 Subject: error pages; js system to support back/front-end --- html/assets/js/plugins/accordion.js | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 html/assets/js/plugins/accordion.js (limited to 'html/assets/js/plugins/accordion.js') diff --git a/html/assets/js/plugins/accordion.js b/html/assets/js/plugins/accordion.js new file mode 100644 index 0000000..62e25ad --- /dev/null +++ b/html/assets/js/plugins/accordion.js @@ -0,0 +1,43 @@ +$$plugins.define('accordion', ['domHelper'], function (element, options, $) { + var animating = false, + $header = $(element).find('.acc:not(.acc--disabled) .acc__header'), + $content, + $prevActiveAcc, + $this, + $accItem, + singleOpen = options.singleOpen ? options.singleOpen : false; + + $header.on('click', function (e) { + $this = $(this); + $accItem = $this.parent('.acc'); + $content = $this.next('.acc__content'); + if (animating === true) { + return; + } + animating = true; + if ($accItem.is('.open')) { + $content.slideUp(300, function () { + $accItem.removeClass('open'); + $content.removeAttr('style'); + animating = false; + }); + } else { + $content.slideDown(300, function () { + $accItem.addClass('open'); + $content.removeAttr('style'); + animating = false; + }); + + if (singleOpen) { + $prevActiveAcc = $accItem.siblings('.acc.open'); + if ($prevActiveAcc.length != 0) { + $prevActiveAcc.find('.acc__content').slideUp(300, function () { + $prevActiveAcc.removeClass('open'); + $prevActiveAcc.find('.acc__content').removeAttr('style'); + animating = false; + }); + } + } + } + }); +}); -- cgit v1.2.3