summaryrefslogtreecommitdiff
path: root/html/assets/js/plugins/tabs.js
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
commit7aa203150fc1a2ec79c681c13f0d486d531746eb (patch)
treef09ba9f69ccd434e9c7fdeb41807fc8008784d8a /html/assets/js/plugins/tabs.js
parent221af3a2e035bd6689294509feb52f286d3bd5be (diff)
downloadclassroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.gz
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.bz2
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.zip
error pages; js system to support back/front-end
Diffstat (limited to 'html/assets/js/plugins/tabs.js')
-rw-r--r--html/assets/js/plugins/tabs.js28
1 files changed, 28 insertions, 0 deletions
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;
+ });
+ });
+});