From 2653f6a943a6ed74e2b72246ba8211c5fb699a7f Mon Sep 17 00:00:00 2001 From: erdgeist Date: Sun, 7 Aug 2016 02:17:47 +0200 Subject: restructured ;) --- js/core/scrollspy.js | 209 --------------------------------------------------- 1 file changed, 209 deletions(-) delete mode 100755 js/core/scrollspy.js (limited to 'js/core/scrollspy.js') diff --git a/js/core/scrollspy.js b/js/core/scrollspy.js deleted file mode 100755 index a67e2c8..0000000 --- a/js/core/scrollspy.js +++ /dev/null @@ -1,209 +0,0 @@ -/*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ -(function(UI) { - - "use strict"; - - var $win = UI.$win, - $doc = UI.$doc, - scrollspies = [], - checkScrollSpy = function() { - for(var i=0; i < scrollspies.length; i++) { - window.requestAnimationFrame.apply(window, [scrollspies[i].check]); - } - }; - - UI.component('scrollspy', { - - defaults: { - "target" : false, - "cls" : "uk-scrollspy-inview", - "initcls" : "uk-scrollspy-init-inview", - "topoffset" : 0, - "leftoffset" : 0, - "repeat" : false, - "delay" : 0 - }, - - boot: function() { - - // listen to scroll and resize - $doc.on("scrolling.uk.document", checkScrollSpy); - $win.on("load resize orientationchange", UI.Utils.debounce(checkScrollSpy, 50)); - - // init code - UI.ready(function(context) { - - UI.$("[data-uk-scrollspy]", context).each(function() { - - var element = UI.$(this); - - if (!element.data("scrollspy")) { - var obj = UI.scrollspy(element, UI.Utils.options(element.attr("data-uk-scrollspy"))); - } - }); - }); - }, - - init: function() { - - var $this = this, inviewstate, initinview, togglecls = this.options.cls.split(/,/), fn = function(){ - - var elements = $this.options.target ? $this.element.find($this.options.target) : $this.element, - delayIdx = elements.length === 1 ? 1 : 0, - toggleclsIdx = 0; - - elements.each(function(idx){ - - var element = UI.$(this), - inviewstate = element.data('inviewstate'), - inview = UI.Utils.isInView(element, $this.options), - toggle = element.data('ukScrollspyCls') || togglecls[toggleclsIdx].trim(); - - if (inview && !inviewstate && !element.data('scrollspy-idle')) { - - if (!initinview) { - element.addClass($this.options.initcls); - $this.offset = element.offset(); - initinview = true; - - element.trigger("init.uk.scrollspy"); - } - - element.data('scrollspy-idle', setTimeout(function(){ - - element.addClass("uk-scrollspy-inview").toggleClass(toggle).width(); - element.trigger("inview.uk.scrollspy"); - - element.data('scrollspy-idle', false); - element.data('inviewstate', true); - - }, $this.options.delay * delayIdx)); - - delayIdx++; - } - - if (!inview && inviewstate && $this.options.repeat) { - - if (element.data('scrollspy-idle')) { - clearTimeout(element.data('scrollspy-idle')); - element.data('scrollspy-idle', false); - } - - element.removeClass("uk-scrollspy-inview").toggleClass(toggle); - element.data('inviewstate', false); - - element.trigger("outview.uk.scrollspy"); - } - - toggleclsIdx = togglecls[toggleclsIdx + 1] ? (toggleclsIdx + 1) : 0; - - }); - }; - - fn(); - - this.check = fn; - - scrollspies.push(this); - } - }); - - - var scrollspynavs = [], - checkScrollSpyNavs = function() { - for(var i=0; i < scrollspynavs.length; i++) { - window.requestAnimationFrame.apply(window, [scrollspynavs[i].check]); - } - }; - - UI.component('scrollspynav', { - - defaults: { - "cls" : 'uk-active', - "closest" : false, - "topoffset" : 0, - "leftoffset" : 0, - "smoothscroll" : false - }, - - boot: function() { - - // listen to scroll and resize - $doc.on("scrolling.uk.document", checkScrollSpyNavs); - $win.on("resize orientationchange", UI.Utils.debounce(checkScrollSpyNavs, 50)); - - // init code - UI.ready(function(context) { - - UI.$("[data-uk-scrollspy-nav]", context).each(function() { - - var element = UI.$(this); - - if (!element.data("scrollspynav")) { - var obj = UI.scrollspynav(element, UI.Utils.options(element.attr("data-uk-scrollspy-nav"))); - } - }); - }); - }, - - init: function() { - - var ids = [], - links = this.find("a[href^='#']").each(function(){ if(this.getAttribute("href").trim()!=='#') ids.push(this.getAttribute("href")); }), - targets = UI.$(ids.join(",")), - - clsActive = this.options.cls, - clsClosest = this.options.closest || this.options.closest; - - var $this = this, inviews, fn = function(){ - - inviews = []; - - for (var i=0 ; i < targets.length ; i++) { - if (UI.Utils.isInView(targets.eq(i), $this.options)) { - inviews.push(targets.eq(i)); - } - } - - if (inviews.length) { - - var navitems, - scrollTop = $win.scrollTop(), - target = (function(){ - for(var i=0; i< inviews.length;i++){ - if (inviews[i].offset().top - $this.options.topoffset >= scrollTop){ - return inviews[i]; - } - } - })(); - - if (!target) return; - - if ($this.options.closest) { - links.blur().closest(clsClosest).removeClass(clsActive); - navitems = links.filter("a[href='#"+target.attr("id")+"']").closest(clsClosest).addClass(clsActive); - } else { - navitems = links.removeClass(clsActive).filter("a[href='#"+target.attr("id")+"']").addClass(clsActive); - } - - $this.element.trigger("inview.uk.scrollspynav", [target, navitems]); - } - }; - - if (this.options.smoothscroll && UI.smoothScroll) { - links.each(function(){ - UI.smoothScroll(this, $this.options.smoothscroll); - }); - } - - fn(); - - this.element.data("scrollspynav", this); - - this.check = fn; - scrollspynavs.push(this); - - } - }); - -})(UIkit); -- cgit v1.2.3