/** * Xenon Widgets * * Theme by: www.laborator.co **/ ;(function($, window, undefined){ "use strict"; $(document).ready(function() { if($('.page-loading-overlay').length) { $(window).on('load', function() { setTimeout(setupWidgets, 200); }); } else { setupWidgets(); } }); var setupWidgets = function() { // Count Anything $("[data-from][data-to]").each(function(i, el) { var $el = $(el), sm = scrollMonitor.create(el); sm.fullyEnterViewport(function() { var opts = { useEasing: attrDefault($el, 'easing', true), useGrouping: attrDefault($el, 'grouping', true), separator: attrDefault($el, 'separator', ','), decimal: attrDefault($el, 'decimal', '.'), prefix: attrDefault($el, 'prefix', ''), suffix: attrDefault($el, 'suffix', ''), }, $count = attrDefault($el, 'count', 'this') == 'this' ? $el : $el.find($el.data('count')), from = attrDefault($el, 'from', 0), to = attrDefault($el, 'to', 100), duration = attrDefault($el, 'duration', 2.5), delay = attrDefault($el, 'delay', 0), decimals = new String(to).match(/\.([0-9]+)/) ? new String(to).match(/\.([0-9]+)$/)[1].length : 0, counter = new countUp($count.get(0), from, to, decimals, duration, opts); setTimeout(function(){ counter.start(); }, delay * 1000); sm.destroy(); }); }); // Fill Anything $("[data-fill-from][data-fill-to]").each(function(i, el) { var $el = $(el), sm = scrollMonitor.create(el); sm.fullyEnterViewport(function() { var fill = { current: null, from: attrDefault($el, 'fill-from', 0), to: attrDefault($el, 'fill-to', 100), property: attrDefault($el, 'fill-property', 'width'), unit: attrDefault($el, 'fill-unit', '%'), }, opts = { current: fill.to, onUpdate: function(){ $el.css(fill.property, fill.current + fill.unit); }, delay: attrDefault($el, 'delay', 0), }, easing = attrDefault($el, 'fill-easing', true), duration = attrDefault($el, 'fill-duration', 2.5); if(easing) { opts.ease = Sine.easeOut; } // Set starting point fill.current = fill.from; TweenMax.to(fill, duration, opts); sm.destroy(); }); }); // Todo List $(".xe-todo-list").on('change', 'input[type="checkbox"]', function(ev) { var $cb = $(this), $li = $cb.closest('li'); $li.removeClass('done'); if($cb.is(':checked')) { $li.addClass('done'); } }); $(".xe-status-update").each(function(i, el) { var $el = $(el), $nav = $el.find('.xe-nav a'), $status_list = $el.find('.xe-body li'), index = $status_list.filter('.active').index(), auto_switch = attrDefault($el, 'auto-switch', 0), as_interval = 0; if(auto_switch > 0) { as_interval = setInterval(function() { goTo(1); }, auto_switch * 1000); $el.hover(function() { window.clearInterval(as_interval); }, function() { as_interval = setInterval(function() { goTo(1); }, auto_switch * 1000);; }); } function goTo(plus_one) { index = (index + plus_one) % $status_list.length; if(index < 0) index = $status_list.length - 1; var $to_hide = $status_list.filter('.active'), $to_show = $status_list.eq(index); $to_hide.removeClass('active'); $to_show.addClass('active').fadeTo(0,0).fadeTo(320,1); } $nav.on('click', function(ev) { ev.preventDefault(); var plus_one = $(this).hasClass('xe-prev') ? -1 : 1; goTo(plus_one); }); }); } })(jQuery, window);