/* _ _ _ _ ___| (_) ___| | __ (_)___ / __| | |/ __| |/ / | / __| \__ \ | | (__| < _ | \__ \ |___/_|_|\___|_|\_(_)/ |___/ |__/ author: ken wheeler website: http://kenwheeler.github.io docs: http://kenwheeler.github.io/slick repo: http://github.com/kenwheeler/slick issues: http://github.com/kenwheeler/slick/issues */ /* global window, document, define, jquery, setinterval, clearinterval */ (function(factory) { 'use strict'; if (typeof define === 'function' && define.amd) { define(['jquery'], factory); } else { factory(jquery); } }(function($) { 'use strict'; var slick = window.slick || {}; slick = (function() { var instanceuid = 0; function slick(element, settings) { var _ = this, responsivesettings, breakpoint; _.defaults = { accessibility: true, arrows: true, autoplay: false, autoplayspeed: 3000, centermode: false, centerpadding: '50px', cssease: 'ease', custompaging: function(slider, i) { return ''; }, dots: false, draggable: true, easing: 'linear', fade: false, infinite: true, lazyload: 'ondemand', onbeforechange: null, onafterchange: null, oninit: null, onreinit: null, pauseonhover: true, responsive: null, slide: 'div', slidestoshow: 1, slidestoscroll: 1, speed: 300, swipe: true, touchmove: true, touchthreshold: 5, vertical: false }; _.initials = { animating: false, autoplaytimer: null, currentslide: 0, currentleft: null, direction: 1, $dots: null, listwidth: null, listheight: null, loadindex: 0, $nextarrow: null, $prevarrow: null, slidecount: null, slidewidth: null, $slidetrack: null, $slides: null, sliding: false, slideoffset: 0, swipeleft: null, $list: null, touchobject: {}, transformsenabled: false }; $.extend(_, _.initials); _.activebreakpoint = null; _.animtype = null; _.animprop = null; _.breakpoints = []; _.breakpointsettings = []; _.csstransitions = false; _.paused = false; _.positionprop = null; _.$slider = $(element); _.$slidescache = null; _.transformtype = null; _.transitiontype = null; _.windowwidth = 0; _.windowtimer = null; _.options = $.extend({}, _.defaults, settings); _.originalsettings = _.options; responsivesettings = _.options.responsive || null; if (responsivesettings && responsivesettings.length > -1) { for (breakpoint in responsivesettings) { if (responsivesettings.hasownproperty(breakpoint)) { _.breakpoints.push(responsivesettings[ breakpoint].breakpoint); _.breakpointsettings[responsivesettings[ breakpoint].breakpoint] = responsivesettings[breakpoint].settings; } } _.breakpoints.sort(function(a, b) { return b - a; }); } _.autoplay = $.proxy(_.autoplay, _); _.autoplayclear = $.proxy(_.autoplayclear, _); _.changeslide = $.proxy(_.changeslide, _); _.setposition = $.proxy(_.setposition, _); _.swipehandler = $.proxy(_.swipehandler, _); _.draghandler = $.proxy(_.draghandler, _); _.keyhandler = $.proxy(_.keyhandler, _); _.autoplayiterator = $.proxy(_.autoplayiterator, _); _.instanceuid = instanceuid++; _.init(); } return slick; }()); slick.prototype.addslide = function(markup, index, addbefore) { var _ = this; if (typeof(index) === 'boolean') { addbefore = index; index = null; } else if (index < 0 || (index >= _.slidecount)) { return false; } _.unload(); if (typeof(index) === 'number') { if (index === 0 && _.$slides.length === 0) { $(markup).appendto(_.$slidetrack); } else if (addbefore) { $(markup).insertbefore(_.$slides.eq(index)); } else { $(markup).insertafter(_.$slides.eq(index)); } } else { if (addbefore === true) { $(markup).prependto(_.$slidetrack); } else { $(markup).appendto(_.$slidetrack); } } _.$slides = _.$slidetrack.children(this.options.slide); _.$slidetrack.children(this.options.slide).remove(); _.$slidetrack.append(_.$slides); _.$slidescache = _.$slides; _.reinit(); }; slick.prototype.animateslide = function(targetleft, callback) { var animprops = {}, _ = this; if (_.transformsenabled === false) { if (_.options.vertical === false) { _.$slidetrack.animate({ left: targetleft }, _.options.speed, _.options.easing, callback); } else { _.$slidetrack.animate({ top: targetleft }, _.options.speed, _.options.easing, callback); } } else { if (_.csstransitions === false) { $({ animstart: _.currentleft }).animate({ animstart: targetleft }, { duration: _.options.speed, easing: _.options.easing, step: function(now) { if (_.options.vertical === false) { animprops[_.animtype] = 'translate(' + now + 'px, 0px)'; _.$slidetrack.css(animprops); } else { animprops[_.animtype] = 'translate(0px,' + now + 'px)'; _.$slidetrack.css(animprops); } }, complete: function() { if (callback) { callback.call(); } } }); } else { _.applytransition(); if (_.options.vertical === false) { animprops[_.animtype] = 'translate3d(' + targetleft + 'px, 0px, 0px)'; } else { animprops[_.animtype] = 'translate3d(0px,' + targetleft + 'px, 0px)'; } _.$slidetrack.css(animprops); if (callback) { settimeout(function() { _.disabletransition(); callback.call(); }, _.options.speed); } } } }; slick.prototype.applytransition = function(slide) { var _ = this, transition = {}; if (_.options.fade === false) { transition[_.transitiontype] = _.transformtype + ' ' + _.options.speed + 'ms ' + _.options.cssease; } else { transition[_.transitiontype] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssease; } if (_.options.fade === false) { _.$slidetrack.css(transition); } else { _.$slides.eq(slide).css(transition); } }; slick.prototype.autoplay = function() { var _ = this; if (_.autoplaytimer) { clearinterval(_.autoplaytimer); } if (_.slidecount > _.options.slidestoshow && _.paused !== true) { _.autoplaytimer = setinterval(_.autoplayiterator, _.options.autoplayspeed); } }; slick.prototype.autoplayclear = function() { var _ = this; if (_.autoplaytimer) { clearinterval(_.autoplaytimer); } }; slick.prototype.autoplayiterator = function() { var _ = this; if (_.options.infinite === false) { if (_.direction === 1) { if ((_.currentslide + 1) === _.slidecount - 1) { _.direction = 0; } _.slidehandler(_.currentslide + _.options .slidestoscroll); } else { if ((_.currentslide - 1 === 0)) { _.direction = 1; } _.slidehandler(_.currentslide - _.options .slidestoscroll); } } else { _.slidehandler(_.currentslide + _.options.slidestoscroll); } }; slick.prototype.buildarrows = function() { var _ = this; if (_.options.arrows === true && _.slidecount > _.options.slidestoshow) { _.$prevarrow = $( '').appendto( _.$slider); _.$nextarrow = $( '').appendto( _.$slider); if (_.options.infinite !== true) { _.$prevarrow.addclass('slick-disabled'); } } }; slick.prototype.builddots = function() { var _ = this, i, dotstring; if (_.options.dots === true && _.slidecount > _.options.slidestoshow) { dotstring = ''; _.$dots = $(dotstring).appendto( _.$slider); _.$dots.find('li').first().addclass( 'slick-active'); } }; slick.prototype.buildout = function() { var _ = this; _.$slides = _.$slider.children(_.options.slide + ':not(.slick-cloned)').addclass( 'slick-slide'); _.slidecount = _.$slides.length; _.$slidescache = _.$slides; _.$slider.addclass('slick-slider'); _.$slidetrack = (_.slidecount === 0) ? $('
').appendto(_.$slider) : _.$slides.wrapall('
').parent(); _.$list = _.$slidetrack.wrap( '
').parent(); _.$slidetrack.css('opacity', 0); if (_.options.centermode === true) { _.options.infinite = true; _.options.slidestoscroll = 1; if (_.options.slidestoshow % 2 === 0) { _.options.slidestoshow = 3; } } $('img[data-lazy]', _.$slider).not('[src]').addclass('slick-loading'); _.setupinfinite(); _.buildarrows(); _.builddots(); if (_.options.accessibility === true) { _.$list.prop('tabindex', 0); } _.setslideclasses(0); if (_.options.draggable === true) { _.$list.addclass('draggable'); } }; slick.prototype.checkresponsive = function() { var _ = this, breakpoint, targetbreakpoint; if (_.originalsettings.responsive && _.originalsettings .responsive.length > -1 && _.originalsettings.responsive !== null) { targetbreakpoint = null; for (breakpoint in _.breakpoints) { if (_.breakpoints.hasownproperty(breakpoint)) { if ($(window).width() < _.breakpoints[ breakpoint]) { targetbreakpoint = _.breakpoints[ breakpoint]; } } } if (targetbreakpoint !== null) { if (_.activebreakpoint !== null) { if (targetbreakpoint !== _.activebreakpoint) { _.activebreakpoint = targetbreakpoint; _.options = $.extend({}, _.defaults, _.breakpointsettings[ targetbreakpoint]); _.refresh(); } } else { _.activebreakpoint = targetbreakpoint; _.options = $.extend({}, _.defaults, _.breakpointsettings[ targetbreakpoint]); _.refresh(); } } else { if (_.activebreakpoint !== null) { _.activebreakpoint = null; _.options = $.extend({}, _.defaults, _.originalsettings); _.refresh(); } } } }; slick.prototype.changeslide = function(event) { var _ = this; switch (event.data.message) { case 'previous': _.slidehandler(_.currentslide - _.options .slidestoscroll); break; case 'next': _.slidehandler(_.currentslide + _.options .slidestoscroll); break; case 'index': _.slidehandler($(event.target).parent().index() * _.options.slidestoscroll); break; default: return false; } }; slick.prototype.destroy = function() { var _ = this; _.autoplayclear(); _.touchobject = {}; $('.slick-cloned', _.$slider).remove(); if (_.$dots) { _.$dots.remove(); } if (_.$prevarrow) { _.$prevarrow.remove(); _.$nextarrow.remove(); } _.$slides.unwrap().unwrap(); _.$slides.removeclass( 'slick-slide slick-active slick-visible').removeattr('style'); _.$slider.removeclass('slick-slider'); _.$slider.removeclass('slick-initialized'); _.$list.off('.slick'); $(window).off('.slick-' + _.instanceuid); }; slick.prototype.disabletransition = function(slide) { var _ = this, transition = {}; transition[_.transitiontype] = ""; if (_.options.fade === false) { _.$slidetrack.css(transition); } else { _.$slides.eq(slide).css(transition); } }; slick.prototype.fadeslide = function(slideindex, callback) { var _ = this; if (_.csstransitions === false) { _.$slides.eq(slideindex).css({ zindex: 1000 }); _.$slides.eq(slideindex).animate({ opacity: 1 }, _.options.speed, _.options.easing, callback); } else { _.applytransition(slideindex); _.$slides.eq(slideindex).css({ opacity: 1, zindex: 1000 }); if (callback) { settimeout(function() { _.disabletransition(slideindex); callback.call(); }, _.options.speed); } } }; slick.prototype.filterslides = function(filter) { var _ = this; if (filter !== null) { _.unload(); _.$slidetrack.children(this.options.slide).remove(); _.$slidescache.filter(filter).appendto(_.$slidetrack); _.reinit(); } }; slick.prototype.getcurrent = function() { var _ = this; return _.currentslide; }; slick.prototype.getdotcount = function() { var _ = this, breaker = 0, dotcounter = 0, dotcount = 0, dotlimit; dotlimit = _.options.infinite === true ? _.slidecount + _.options.slidestoshow - _.options.slidestoscroll : _.slidecount; while (breaker < dotlimit) { dotcount++; dotcounter += _.options.slidestoscroll; breaker = dotcounter + _.options.slidestoshow; } return dotcount; }; slick.prototype.getleft = function(slideindex) { var _ = this, targetleft; _.slideoffset = 0; if (_.options.infinite === true) { if (_.slidecount > _.options.slidestoshow) { _.slideoffset = (_.slidewidth * _.options.slidestoshow) * -1; } if (_.slidecount % _.options.slidestoscroll !== 0) { if (slideindex + _.options.slidestoscroll > _.slidecount && _.slidecount > _.options.slidestoshow) { _.slideoffset = ((_.slidecount % _.options.slidestoshow) * _.slidewidth) * -1; } } } else { if (_.slidecount % _.options.slidestoshow !== 0) { if (slideindex + _.options.slidestoscroll > _.slidecount && _.slidecount > _.options.slidestoshow) { _.slideoffset = ((_.slidecount % _.options.slidestoshow) * _.slidewidth); } } } if (_.options.centermode === true) { _.slideoffset += _.slidewidth * math.floor(_.options.slidestoshow / 2) - _.slidewidth; } if (_.options.vertical === false) { targetleft = ((slideindex * _.slidewidth) * -1) + _.slideoffset; } else { _.listheight = _.$list.height(); if (_.options.infinite === true) { targetleft = ((slideindex * _.listheight) * -1) - _.listheight; } else { targetleft = ((slideindex * _.listheight) * -1); } } return targetleft; }; slick.prototype.init = function() { var _ = this; if (!$(_.$slider).hasclass('slick-initialized')) { $(_.$slider).addclass('slick-initialized'); _.buildout(); _.setprops(); _.startload(); _.loadslider(); _.initializeevents(); _.checkresponsive(); } if (_.options.oninit !== null) { _.options.oninit.call(this, _); } }; slick.prototype.initarrowevents = function() { var _ = this; if (_.options.arrows === true && _.slidecount > _.options.slidestoshow) { _.$prevarrow.on('click.slick', { message: 'previous' }, _.changeslide); _.$nextarrow.on('click.slick', { message: 'next' }, _.changeslide); } }; slick.prototype.initdotevents = function() { var _ = this; if (_.options.dots === true && _.slidecount > _.options.slidestoshow) { $('li', _.$dots).on('click.slick', { message: 'index' }, _.changeslide); } }; slick.prototype.initializeevents = function() { var _ = this; _.initarrowevents(); _.initdotevents(); _.$list.on('touchstart.slick mousedown.slick', { action: 'start' }, _.swipehandler); _.$list.on('touchmove.slick mousemove.slick', { action: 'move' }, _.swipehandler); _.$list.on('touchend.slick mouseup.slick', { action: 'end' }, _.swipehandler); _.$list.on('touchcancel.slick mouseleave.slick', { action: 'end' }, _.swipehandler); if (_.options.pauseonhover === true && _.options.autoplay === true) { _.$list.on('mouseenter.slick', _.autoplayclear); _.$list.on('mouseleave.slick', _.autoplay); } if(_.options.accessibility === true) { _.$list.on('keydown.slick', _.keyhandler); } $(window).on('orientationchange.slick.slick-' + _.instanceuid, function() { _.checkresponsive(); _.setposition(); }); $(window).on('resize.slick.slick-' + _.instanceuid, function() { if ($(window).width !== _.windowwidth) { cleartimeout(_.windowdelay); _.windowdelay = window.settimeout(function() { _.windowwidth = $(window).width(); _.checkresponsive(); _.setposition(); }, 50); } }); $(window).on('load.slick.slick-' + _.instanceuid, _.setposition); }; slick.prototype.initui = function() { var _ = this; if (_.options.arrows === true && _.slidecount > _.options.slidestoshow) { _.$prevarrow.show(); _.$nextarrow.show(); } if (_.options.dots === true && _.slidecount > _.options.slidestoshow) { _.$dots.show(); } if (_.options.autoplay === true) { _.autoplay(); } }; slick.prototype.keyhandler = function(event) { var _ = this; if (event.keycode === 37) { _.changeslide({ data: { message: 'previous' } }); } else if (event.keycode === 39) { _.changeslide({ data: { message: 'next' } }); } }; slick.prototype.lazyload = function() { var _ = this, loadrange, clonerange, rangestart, rangeend; if (_.options.centermode === true) { rangestart = _.options.slidestoshow + _.currentslide - 1; rangeend = rangestart + _.options.slidestoshow + 2; } else { rangestart = _.options.infinite ? _.options.slidestoshow + _.currentslide : _.currentslide; rangeend = rangestart + _.options.slidestoshow; } loadrange = _.$slider.find('.slick-slide').slice(rangestart, rangeend); $('img[data-lazy]', loadrange).not('[src]').each(function() { $(this).css({opacity: 0}).attr('src', $(this).attr('data-lazy')).removeclass('slick-loading').load(function(){ $(this).animate({ opacity: 1 }, 200); }); }); if (_.currentslide >= _.slidecount - _.options.slidestoshow) { clonerange = _.$slider.find('.slick-cloned').slice(0, _.options.slidestoshow); $('img[data-lazy]', clonerange).not('[src]').each(function() { $(this).css({opacity: 0}).attr('src', $(this).attr('data-lazy')).removeclass('slick-loading').load(function(){ $(this).animate({ opacity: 1 }, 200); }); }); } else if (_.currentslide === 0) { clonerange = _.$slider.find('.slick-cloned').slice(_.options.slidestoshow * -1); $('img[data-lazy]', clonerange).not('[src]').each(function() { $(this).css({opacity: 0}).attr('src', $(this).attr('data-lazy')).removeclass('slick-loading').load(function(){ $(this).animate({ opacity: 1 }, 200); }); }); } }; slick.prototype.loadslider = function() { var _ = this; _.setposition(); _.$slidetrack.css({ opacity: 1 }); _.$slider.removeclass('slick-loading'); _.initui(); if (_.options.lazyload === 'progressive') { _.progressivelazyload(); } }; slick.prototype.postslide = function(index) { var _ = this; if (_.options.onafterchange !== null) { _.options.onafterchange.call(this, _, index); } _.animating = false; _.setposition(); _.swipeleft = null; if (_.options.autoplay === true && _.paused === false) { _.autoplay(); } _.setslideclasses(_.currentslide); }; slick.prototype.progressivelazyload = function() { var _ = this, imgcount, targetimage; imgcount = $('img[data-lazy]').not('[src]').length; if (imgcount > 0) { targetimage = $($('img[data-lazy]', _.$slider).not('[src]').get(0)); targetimage.attr('src', targetimage.attr('data-lazy')).removeclass('slick-loading').load(function() { _.progressivelazyload(); }); } }; slick.prototype.refresh = function() { var _ = this; _.destroy(); $.extend(_, _.initials); _.init(); }; slick.prototype.reinit = function() { var _ = this; _.$slides = $(_.options.slide + ':not(.slick-cloned)', _.$slidetrack).addclass( 'slick-slide'); _.slidecount = _.$slides.length; if (_.currentslide >= _.slidecount && _.currentslide !== 0) { _.currentslide = _.currentslide - _.options.slidestoscroll; } _.setprops(); _.setupinfinite(); _.buildarrows(); _.updatearrows(); _.initarrowevents(); _.builddots(); _.updatedots(); _.initdotevents(); _.setslideclasses(0); _.setposition(); if (_.options.onreinit !== null) { _.options.onreinit.call(this, _); } }; slick.prototype.removeslide = function(index, removebefore) { var _ = this; if (typeof(index) === 'boolean') { removebefore = index; index = removebefore === true ? 0 : _.slidecount - 1; } else { index = removebefore === true ? --index : index; } if (_.slidecount < 1 || index < 0 || index > _.slidecount - 1) { return false; } _.unload(); _.$slidetrack.children(this.options.slide).eq(index).remove(); _.$slides = _.$slidetrack.children(this.options.slide); _.$slidetrack.children(this.options.slide).remove(); _.$slidetrack.append(_.$slides); _.$slidescache = _.$slides; _.reinit(); }; slick.prototype.setcss = function(position) { var _ = this, positionprops = {}, x, y; x = _.positionprop == 'left' ? position + 'px' : '0px'; y = _.positionprop == 'top' ? position + 'px' : '0px'; positionprops[_.positionprop] = position; if (_.transformsenabled === false) { _.$slidetrack.css(positionprops); } else { positionprops = {}; if (_.csstransitions === false) { positionprops[_.animtype] = 'translate(' + x + ', ' + y + ')'; _.$slidetrack.css(positionprops); } else { positionprops[_.animtype] = 'translate3d(' + x + ', ' + y + ', 0px)'; _.$slidetrack.css(positionprops); } } }; slick.prototype.setdimensions = function() { var _ = this; if (_.options.centermode === true) { _.$slidetrack.children('.slick-slide').width(_.slidewidth); } else { _.$slidetrack.children('.slick-slide').width(_.slidewidth); } if (_.options.vertical === false) { _.$slidetrack.width(math.ceil((_.slidewidth * _ .$slidetrack.children('.slick-slide').length))); if (_.options.centermode === true) { _.$list.css({ padding: ('0px ' + _.options.centerpadding) }); } } else { _.$list.height(_.$slides.first().outerheight()); _.$slidetrack.height(math.ceil((_.listheight * _ .$slidetrack.children('.slick-slide').length))); if (_.options.centermode === true) { _.$list.css({ padding: (_.options.centerpadding + ' 0px') }); } } }; slick.prototype.setfade = function() { var _ = this, targetleft; _.$slides.each(function(index, element) { targetleft = (_.slidewidth * index) * -1; $(element).css({ position: 'relative', left: targetleft, top: 0, zindex: 800, opacity: 0 }); }); _.$slides.eq(_.currentslide).css({ zindex: 900, opacity: 1 }); }; slick.prototype.setposition = function() { var _ = this; _.setvalues(); _.setdimensions(); if (_.options.fade === false) { _.setcss(_.getleft(_.currentslide)); } else { _.setfade(); } }; slick.prototype.setprops = function() { var _ = this; _.positionprop = _.options.vertical === true ? 'top' : 'left'; if (_.positionprop === 'top') { _.$slider.addclass('slick-vertical'); } else { _.$slider.removeclass('slick-vertical'); } if (document.body.style.webkittransition !== undefined || document.body.style.moztransition !== undefined || document.body.style.mstransition !== undefined) { _.csstransitions = true; } if (document.body.style.moztransform !== undefined) { _.animtype = 'moztransform'; _.transformtype = "-moz-transform"; _.transitiontype = 'moztransition'; } if (document.body.style.webkittransform !== undefined) { _.animtype = 'webkittransform'; _.transformtype = "-webkit-transform"; _.transitiontype = 'webkittransition'; } if (document.body.style.mstransform !== undefined) { _.animtype = 'transform'; _.transformtype = "transform"; _.transitiontype = 'transition'; } _.transformsenabled = (_.animtype !== null); }; slick.prototype.setvalues = function() { var _ = this; _.listwidth = _.$list.width(); _.listheight = _.$list.height(); _.slidewidth = math.ceil(_.listwidth / _.options .slidestoshow); }; slick.prototype.setslideclasses = function(index) { var _ = this, centeroffset, allslides, indexoffset; _.$slider.find('.slick-slide').removeclass('slick-active').removeclass('slick-center'); allslides = _.$slider.find('.slick-slide'); if (_.options.centermode === true) { centeroffset = math.floor(_.options.slidestoshow / 2); if (index >= centeroffset && index <= (_.slidecount - 1) - centeroffset) { _.$slides.slice(index - centeroffset, index + centeroffset + 1).addclass('slick-active'); } else { indexoffset = _.options.slidestoshow + index; allslides.slice(indexoffset - centeroffset + 1, indexoffset + centeroffset + 2).addclass('slick-active'); } if (index === 0) { allslides.eq(allslides.length - 1 - _.options.slidestoshow).addclass('slick-center'); } else if (index === _.slidecount - 1) { allslides.eq(_.options.slidestoshow).addclass('slick-center'); } _.$slides.eq(index).addclass('slick-center'); } else { if (index > 0 && index < (_.slidecount - _.options.slidestoshow)) { _.$slides.slice(index, index + _.options.slidestoshow).addclass('slick-active'); } else { indexoffset = _.options.slidestoshow + index; allslides.slice(indexoffset, indexoffset + _.options.slidestoshow).addclass('slick-active'); } } if (_.options.lazyload === 'ondemand') { _.lazyload(); } }; slick.prototype.setupinfinite = function() { var _ = this, i, slideindex, infinitecount; if (_.options.fade === true || _.options.vertical === true) { _.options.slidestoshow = 1; _.options.slidestoscroll = 1; _.options.centermode = false; } if (_.options.infinite === true && _.options.fade === false) { slideindex = null; if (_.slidecount > _.options.slidestoshow) { if (_.options.centermode === true) { infinitecount = _.options.slidestoshow + 1; } else { infinitecount = _.options.slidestoshow; } for (i = _.slidecount; i > (_.slidecount - infinitecount); i -= 1) { slideindex = i - 1; $(_.$slides[slideindex]).clone().attr('id', '').prependto( _.$slidetrack).addclass('slick-cloned'); } for (i = 0; i < infinitecount; i += 1) { slideindex = i; $(_.$slides[slideindex]).clone().attr('id', '').appendto( _.$slidetrack).addclass('slick-cloned'); } _.$slidetrack.find('.slick-cloned').find('[id]').each(function() { $(this).attr('id', ''); }); } } }; slick.prototype.slidehandler = function(index) { var targetslide, animslide, slideleft, unevenoffset, targetleft = null, _ = this; if (_.animating === true) { return false; } targetslide = index; targetleft = _.getleft(targetslide); slideleft = _.getleft(_.currentslide); unevenoffset = _.slidecount % _.options.slidestoscroll !== 0 ? _.options.slidestoscroll : 0; _.currentleft = _.swipeleft === null ? slideleft : _.swipeleft; if (_.options.infinite === false && (index < 0 || index > (_.slidecount - _.options.slidestoshow + unevenoffset))) { targetslide = _.currentslide; _.animateslide(slideleft, function() { _.postslide(targetslide); }); return false; } if (_.options.autoplay === true) { clearinterval(_.autoplaytimer); } if (targetslide < 0) { if (_.slidecount % _.options.slidestoscroll !== 0) { animslide = _.slidecount - (_.slidecount % _.options.slidestoscroll); } else { animslide = _.slidecount - _.options.slidestoscroll; } } else if (targetslide > (_.slidecount - 1)) { animslide = 0; } else { animslide = targetslide; } _.animating = true; if (_.options.onbeforechange !== null && index !== _.currentslide) { _.options.onbeforechange.call(this, _, _.currentslide, animslide); } _.currentslide = animslide; _.updatedots(); _.updatearrows(); if (_.options.fade === true) { _.fadeslide(animslide, function() { _.postslide(animslide); }); return false; } _.animateslide(targetleft, function() { _.postslide(animslide); }); }; slick.prototype.startload = function() { var _ = this; if (_.options.arrows === true && _.slidecount > _.options.slidestoshow) { _.$prevarrow.hide(); _.$nextarrow.hide(); } if (_.options.dots === true && _.slidecount > _.options.slidestoshow) { _.$dots.hide(); } _.$slider.addclass('slick-loading'); }; slick.prototype.swipedirection = function() { var xdist, ydist, r, swipeangle, _ = this; xdist = _.touchobject.startx - _.touchobject.curx; ydist = _.touchobject.starty - _.touchobject.cury; r = math.atan2(ydist, xdist); swipeangle = math.round(r * 180 / math.pi); if (swipeangle < 0) { swipeangle = 360 - math.abs(swipeangle); } if ((swipeangle <= 45) && (swipeangle >= 0)) { return 'left'; } if ((swipeangle <= 360) && (swipeangle >= 315)) { return 'left'; } if ((swipeangle >= 135) && (swipeangle <= 225)) { return 'right'; } return 'vertical'; }; slick.prototype.swipeend = function(event) { var _ = this; _.$list.removeclass('dragging'); if (_.touchobject.curx === undefined) { return false; } if (_.touchobject.swipelength >= _.touchobject.minswipe) { $(event.target).on('click.slick', function(event) { event.stopimmediatepropagation(); event.stoppropagation(); event.preventdefault(); $(event.target).off('click.slick'); }); switch (_.swipedirection()) { case 'left': _.slidehandler(_.currentslide + _.options.slidestoscroll); _.touchobject = {}; break; case 'right': _.slidehandler(_.currentslide - _.options.slidestoscroll); _.touchobject = {}; break; } } else { if(_.touchobject.startx !== _.touchobject.curx) { _.slidehandler(_.currentslide); _.touchobject = {}; } } }; slick.prototype.swipehandler = function(event) { var _ = this; if ('ontouchend' in document && _.options.swipe === false) { return false; } else if (_.options.draggable === false && !event.originalevent.touches) { return false; } _.touchobject.fingercount = event.originalevent && event.originalevent.touches !== undefined ? event.originalevent.touches.length : 1; _.touchobject.minswipe = _.listwidth / _.options .touchthreshold; switch (event.data.action) { case 'start': _.swipestart(event); break; case 'move': _.swipemove(event); break; case 'end': _.swipeend(event); break; } }; slick.prototype.swipemove = function(event) { var _ = this, curleft, swipedirection, positionoffset, touches; touches = event.originalevent !== undefined ? event.originalevent.touches : null; curleft = _.getleft(_.currentslide); if (!_.$list.hasclass('dragging') || touches && touches.length !== 1) { return false; } _.touchobject.curx = touches !== undefined ? touches[0].pagex : event.clientx; _.touchobject.cury = touches !== undefined ? touches[0].pagey : event.clienty; _.touchobject.swipelength = math.round(math.sqrt( math.pow(_.touchobject.curx - _.touchobject.startx, 2))); swipedirection = _.swipedirection(); if (swipedirection === 'vertical') { return; } if (event.originalevent !== undefined && _.touchobject.swipelength > 4) { event.preventdefault(); } positionoffset = _.touchobject.curx > _.touchobject.startx ? 1 : -1; if (_.options.vertical === false) { _.swipeleft = curleft + _.touchobject.swipelength * positionoffset; } else { _.swipeleft = curleft + (_.touchobject .swipelength * (_.listheight / _.listwidth)) * positionoffset; } if (_.options.fade === true || _.options.touchmove === false) { return false; } if (_.animating === true) { _.swipeleft = null; return false; } _.setcss(_.swipeleft); }; slick.prototype.swipestart = function(event) { var _ = this, touches; if (_.touchobject.fingercount !== 1 || _.slidecount <= _.options.slidestoshow) { _.touchobject = {}; return false; } if (event.originalevent !== undefined && event.originalevent.touches !== undefined) { touches = event.originalevent.touches[0]; } _.touchobject.startx = _.touchobject.curx = touches !== undefined ? touches.pagex : event.clientx; _.touchobject.starty = _.touchobject.cury = touches !== undefined ? touches.pagey : event.clienty; _.$list.addclass('dragging'); }; slick.prototype.unfilterslides = function() { var _ = this; if (_.$slidescache !== null) { _.unload(); _.$slidetrack.children(this.options.slide).remove(); _.$slidescache.appendto(_.$slidetrack); _.reinit(); } }; slick.prototype.unload = function() { var _ = this; $('.slick-cloned', _.$slider).remove(); if (_.$dots) { _.$dots.remove(); } if (_.$prevarrow) { _.$prevarrow.remove(); _.$nextarrow.remove(); } _.$slides.removeclass( 'slick-slide slick-active slick-visible').removeattr('style'); }; slick.prototype.updatearrows = function() { var _ = this; if (_.options.arrows === true && _.options.infinite !== true && _.slidecount > _.options.slidestoshow) { _.$prevarrow.removeclass('slick-disabled'); _.$nextarrow.removeclass('slick-disabled'); if (_.currentslide === 0) { _.$prevarrow.addclass('slick-disabled'); _.$nextarrow.removeclass('slick-disabled'); } else if (_.currentslide >= _.slidecount - _.options.slidestoshow) { _.$nextarrow.addclass('slick-disabled'); _.$prevarrow.removeclass('slick-disabled'); } } }; slick.prototype.updatedots = function() { var _ = this; if (_.$dots !== null) { _.$dots.find('li').removeclass('slick-active'); _.$dots.find('li').eq(_.currentslide / _.options.slidestoscroll).addclass( 'slick-active'); } }; $.fn.slick = function(options) { var _ = this; return _.each(function(index, element) { element.slick = new slick(element, options); }); }; $.fn.slickadd = function(slide, slideindex, addbefore) { var _ = this; return _.each(function(index, element) { element.slick.addslide(slide, slideindex, addbefore); }); }; $.fn.slickcurrentslide = function() { var _ = this; return _.get(0).slick.getcurrent(); }; $.fn.slickfilter = function(filter) { var _ = this; return _.each(function(index, element) { element.slick.filterslides(filter); }); }; $.fn.slickgoto = function(slide) { var _ = this; return _.each(function(index, element) { element.slick.slidehandler(slide); }); }; $.fn.slicknext = function() { var _ = this; return _.each(function(index, element) { element.slick.changeslide({ data: { message: 'next' } }); }); }; $.fn.slickpause = function() { var _ = this; return _.each(function(index, element) { element.slick.autoplayclear(); element.slick.paused = true; }); }; $.fn.slickplay = function() { var _ = this; return _.each(function(index, element) { element.slick.paused = false; element.slick.autoplay(); }); }; $.fn.slickprev = function() { var _ = this; return _.each(function(index, element) { element.slick.changeslide({ data: { message: 'previous' } }); }); }; $.fn.slickremove = function(slideindex, removebefore) { var _ = this; return _.each(function(index, element) { element.slick.removeslide(slideindex, removebefore); }); }; $.fn.slicksetoption = function(option, value, refresh) { var _ = this; return _.each(function(index, element) { element.slick.options[option] = value; if (refresh === true) { element.slick.unload(); element.slick.reinit(); } }); }; $.fn.slickunfilter = function() { var _ = this; return _.each(function(index, element) { element.slick.unfilterslides(); }); }; $.fn.unslick = function() { var _ = this; return _.each(function(index, element) { element.slick.destroy(); }); }; })); /* mtree.js */ (function ($, window, document, undefined) { if ($('ul.mtree').length) { var collapsed = true; var close_same_level = false; var duration = 400; var listanim = true; var easing = 'easeoutquart'; $('.mtree ul').css({ 'overflow': 'hidden', 'height': collapsed ? 0 : 'auto', 'display': collapsed ? 'none' : 'block' }); var node = $('.mtree li:has(ul)'); node.each(function (index, val) { $(this).children(':first-child').css('cursor', 'pointer'); $(this).addclass('mtree-node mtree-' + (collapsed ? 'closed' : 'open')); $(this).children('ul').addclass('mtree-level-' + ($(this).parentsuntil($('ul.mtree'), 'ul').length + 1)); }); $('.mtree li > *:first-child').on('click.mtree-active', function (e) { if ($(this).parent().hasclass('mtree-closed')) { $('.mtree-active').not($(this).parent()).removeclass('mtree-active'); $(this).parent().addclass('mtree-active'); } else if ($(this).parent().hasclass('mtree-open')) { $(this).parent().removeclass('mtree-active'); } else { $('.mtree-active').not($(this).parent()).removeclass('mtree-active'); $(this).parent().toggleclass('mtree-active'); } }); node.children(':first-child').on('click.mtree', function (e) { var el = $(this).parent().children('ul').first(); var isopen = $(this).parent().hasclass('mtree-open'); if ((close_same_level || $('.csl').hasclass('active')) && !isopen) { var close_items = $(this).closest('ul').children('.mtree-open').not($(this).parent()).children('ul'); if ($.velocity) { close_items.velocity({ height: 0 }, { duration: duration, easing: easing, display: 'none', delay: 100, complete: function () { setnodeclass($(this).parent(), true); } }); } else { close_items.delay(100).slidetoggle(duration, function () { setnodeclass($(this).parent(), true); }); } } el.css({ 'height': 'auto' }); if (!isopen && $.velocity && listanim) el.find(' > li, li.mtree-open > ul > li').css({ 'opacity': 0 }).velocity('stop').velocity('list'); if ($.velocity) { el.velocity('stop').velocity({ height: isopen ? [ 0, el.outerheight() ] : [ el.outerheight(), 0 ] }, { queue: false, duration: duration, easing: easing, display: isopen ? 'none' : 'block', begin: setnodeclass($(this).parent(), isopen), complete: function () { if (!isopen) $(this).css('height', 'auto'); } }); } else { setnodeclass($(this).parent(), isopen); el.slidetoggle(duration); } e.preventdefault(); }); function setnodeclass(el, isopen) { if (isopen) { el.removeclass('mtree-open').addclass('mtree-closed'); } else { el.removeclass('mtree-closed').addclass('mtree-open'); } } if ($.velocity && listanim) { $.velocity.sequences.list = function (element, options, index, size) { $.velocity.animate(element, { opacity: [ 1, 0 ], translatey: [ 0, -(index + 1) ] }, { delay: index * (duration / size / 2), duration: duration, easing: easing }); }; } if ($('.mtree').css('opacity') == 0) { if ($.velocity) { $('.mtree').css('opacity', 1).children().css('opacity', 0).velocity('list'); } else { $('.mtree').show(200); } } } }(jquery, this, this.document)); $(document).ready(function () { var mtree = $('ul.mtree'); mtree.wrap('
'); var skins = [ 'transit', ]; mtree.addclass(skins[0]); $('body').prepend('
    '); var s = $('.mtree-skin-selector'); s.find('ul').append('
  • '); s.find('button.skin').each(function (index) { $(this).on('click.mtree-skin-selector', function () { s.find('button.skin.active').removeclass('active'); $(this).addclass('active'); mtree.removeclass(skins.join(' ')).addclass(skins[index]); }); }); s.find('button:first').addclass('active'); s.find('.csl').on('click.mtree-close-same-level', function () { $(this).toggleclass('active'); }); }); //默认展开其中一个二级三级菜单 $(document).ready(function () { $("li.active").children("ul.mtree-level-1").css("height","auto").show(); //三级菜单需要右边的加减号则需要 // $("li.active").children("ul.mtree-level-2").css("height","auto").show(); $("li.active").addclass("mtree-open").removeclass("mtree-closed"); // $("li.active").addclass("mtree-open").removeclass("mtree-closed"); // $("li.mtree-node").children("ul.mtree-level-2").css("height","auto").show(); }); /*! * jquery hc-mobilenav * =================== * version: 3.0.0 * author: some web media * author url: http://somewebmedia.com * plugin url: https://github.com/somewebmedia/hc-mobile-nav * description: jquery plugin for creating toggled mobile multi-level navigations * license: mit */ !function(y,e){"use strict";var a,l,x=e.document,t=(/ipad|iphone|ipod/.test(navigator.useragent)||!!navigator.platform&&/ipad|iphone|ipod/.test(navigator.platform))&&!e.msstream,w="ontouchstart"in e||navigator.maxtouchpoints||e.documenttouch&&x instanceof documenttouch,o=function(e){return!isnan(parsefloat(e))&&isfinite(e)},b=function(e){return e.stoppropagation()},m=function(n,a,l){return function(e){n&&e.preventdefault(),a&&e.stoppropagation(),"function"==typeof l&&l()}},p=(a=y("head"),l="hc-mobile-nav-style",function(e){var n=a.find("style#"+l);n.length?n.html(e):y('").appendto(a)}),n=function(e,n,a){var l=a.children("li"),o=l.length,i=-1").parent();else if(e.is("nav"))n=e.clone();else if(!(n=e.find("nav, ul").first().clone()).length)return void console.log("%c! hc mobilenav:%c there is no