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/tabs.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 html/assets/js/plugins/tabs.js (limited to 'html/assets/js/plugins/tabs.js') diff --git a/html/assets/js/plugins/tabs.js b/html/assets/js/plugins/tabs.js new file mode 100644 index 0000000..74d4efc --- /dev/null +++ b/html/assets/js/plugins/tabs.js @@ -0,0 +1,28 @@ +$.defineAttributePlugin('tabs', function ($element, options) { + var animating = false, + dataTab, + slideSpeed = options.slideSpeed ? options.slideSpeed : 400; + + if (!$element.find("[data-tab-trigger]").hasClass('active')) { + setTimeout(function () { $element.find("[data-tab-trigger]").first().trigger('click'); }, 50); + } + + $element.find("[data-tab-trigger]").click(function (e) { + e.preventDefault(); + if (animating === true || $(this).hasClass('active')) { + return; + } + animating = true; + $(this).addClass('active').siblings().removeClass('active'); + dataTab = $(this).data('tab-trigger'); + + $('[data-tab-content="' + dataTab + '"]').siblings('.active').slideUp(slideSpeed, function () { + $(this).removeClass('active').removeAttr('style'); + }); + + $('[data-tab-content="' + dataTab + '"]').slideDown(slideSpeed, function () { + $(this).addClass('active').removeAttr('style'); + animating = false; + }); + }); +}); -- cgit v1.2.3