From c94fb32c7a3c28b18a27460aa2447eeec1fac1de Mon Sep 17 00:00:00 2001 From: Pascal Szewczyk Date: Mon, 18 Jul 2016 23:23:54 +0200 Subject: uikit added --- js/core/toggle.js | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100755 js/core/toggle.js (limited to 'js/core/toggle.js') diff --git a/js/core/toggle.js b/js/core/toggle.js new file mode 100755 index 0000000..05fc2b3 --- /dev/null +++ b/js/core/toggle.js @@ -0,0 +1,120 @@ +/*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ +(function(UI){ + + "use strict"; + + var toggles = []; + + UI.component('toggle', { + + defaults: { + target : false, + cls : 'uk-hidden', + animation : false, + duration : 200 + }, + + boot: function(){ + + // init code + UI.ready(function(context) { + + UI.$("[data-uk-toggle]", context).each(function() { + var ele = UI.$(this); + + if (!ele.data("toggle")) { + var obj = UI.toggle(ele, UI.Utils.options(ele.attr("data-uk-toggle"))); + } + }); + + setTimeout(function(){ + + toggles.forEach(function(toggle){ + toggle.getToggles(); + }); + + }, 0); + }); + }, + + init: function() { + + var $this = this; + + this.aria = (this.options.cls.indexOf('uk-hidden') !== -1); + + this.getToggles(); + + this.on("click", function(e) { + if ($this.element.is('a[href="#"]')) e.preventDefault(); + $this.toggle(); + }); + + toggles.push(this); + }, + + toggle: function() { + + if(!this.totoggle.length) return; + + if (this.options.animation && UI.support.animation) { + + var $this = this, animations = this.options.animation.split(','); + + if (animations.length == 1) { + animations[1] = animations[0]; + } + + animations[0] = animations[0].trim(); + animations[1] = animations[1].trim(); + + this.totoggle.css('animation-duration', this.options.duration+'ms'); + + this.totoggle.each(function(){ + + var ele = UI.$(this); + + if (ele.hasClass($this.options.cls)) { + + ele.toggleClass($this.options.cls); + + UI.Utils.animate(ele, animations[0]).then(function(){ + ele.css('animation-duration', ''); + UI.Utils.checkDisplay(ele); + }); + + } else { + + UI.Utils.animate(this, animations[1]+' uk-animation-reverse').then(function(){ + ele.toggleClass($this.options.cls).css('animation-duration', ''); + UI.Utils.checkDisplay(ele); + }); + + } + + }); + + } else { + this.totoggle.toggleClass(this.options.cls); + UI.Utils.checkDisplay(this.totoggle); + } + + this.updateAria(); + + }, + + getToggles: function() { + this.totoggle = this.options.target ? UI.$(this.options.target):[]; + this.updateAria(); + }, + + updateAria: function() { + if (this.aria && this.totoggle.length) { + this.totoggle.each(function(){ + UI.$(this).attr('aria-hidden', UI.$(this).hasClass('uk-hidden')); + }); + } + } + }); + +})(UIkit); -- cgit v1.2.3