From 2b6970d33afd75be5bfef951dc3691d492004d43 Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Tue, 18 Apr 2023 01:11:37 +0300 Subject: admin back-office environment (skeleton); admin categories --- .../assets/js/_dependency-control/plugins/tabs.js | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 public/assets/js/_dependency-control/plugins/tabs.js (limited to 'public/assets/js/_dependency-control/plugins/tabs.js') diff --git a/public/assets/js/_dependency-control/plugins/tabs.js b/public/assets/js/_dependency-control/plugins/tabs.js new file mode 100644 index 0000000..74d4efc --- /dev/null +++ b/public/assets/js/_dependency-control/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