(function ($, undefined) { 'use strict'; var defaults = { item: 5, autoWidth: false, slideMove: 1, slideMargin: 10, addClass: '', mode: 'slide', useCSS: true, cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)', easing: 'linear', //'for jquery animation',// speed: 400, //ms' auto: false, pauseOnHover: false, loop: false, slideEndAnimation: true, pause: 2000, keyPress: false, controls: true, prevHtml: '', nextHtml: '', rtl: false, adaptiveHeight: false, vertical: false, verticalHeight: 500, vThumbWidth: 100, thumbItem: 10, pager: true, gallery: false, galleryMargin: 10, thumbMargin: 5, currentPagerPosition: 'middle', enableTouch: true, enableDrag: true, freeMove: true, swipeThreshold: 40, responsive: [], /* jshint ignore:start */ onBeforeStart: function ($el) {}, onSliderLoad: function ($el) {}, onBeforeSlide: function ($el, scene) {}, onAfterSlide: function ($el, scene) {}, onBeforeNextSlide: function ($el, scene) {}, onBeforePrevSlide: function ($el, scene) {} /* jshint ignore:end */ }; $.fn.lightSlider = function (options) { if (this.length === 0) { return this; } if (this.length > 1) { this.each(function () { $(this).lightSlider(options); }); return this; } var plugin = {}, settings = $.extend(true, {}, defaults, options), settingsTemp = {}, $el = this; plugin.$el = this; if (settings.mode === 'fade') { settings.vertical = false; } var $children = $el.children(), windowW = $(window).width(), breakpoint = null, resposiveObj = null, length = 0, w = 0, on = false, elSize = 0, $slide = '', scene = 0, property = (settings.vertical === true) ? 'height' : 'width', gutter = (settings.vertical === true) ? 'margin-bottom' : 'margin-right', slideValue = 0, pagerWidth = 0, slideWidth = 0, thumbWidth = 0, interval = null, isTouch = ('ontouchstart' in document.documentElement); var refresh = {}; refresh.chbreakpoint = function () { windowW = $(window).width(); if (settings.responsive.length) { var item; if (settings.autoWidth === false) { item = settings.item; } if (windowW < settings.responsive[0].breakpoint) { for (var i = 0; i < settings.responsive.length; i++) { if (windowW < settings.responsive[i].breakpoint) { breakpoint = settings.responsive[i].breakpoint; resposiveObj = settings.responsive[i]; } } } if (typeof resposiveObj !== 'undefined' && resposiveObj !== null) { for (var j in resposiveObj.settings) { if (resposiveObj.settings.hasOwnProperty(j)) { if (typeof settingsTemp[j] === 'undefined' || settingsTemp[j] === null) { settingsTemp[j] = settings[j]; } settings[j] = resposiveObj.settings[j]; } } } if (!$.isEmptyObject(settingsTemp) && windowW > settings.responsive[0].breakpoint) { for (var k in settingsTemp) { if (settingsTemp.hasOwnProperty(k)) { settings[k] = settingsTemp[k]; } } } if (settings.autoWidth === false) { if (slideValue > 0 && slideWidth > 0) { if (item !== settings.item) { scene = Math.round(slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove)); } } } } }; refresh.calSW = function () { if (settings.autoWidth === false) { slideWidth = (elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item; } }; refresh.calWidth = function (cln) { var ln = cln === true ? $slide.find('.lslide').length : $children.length; if (settings.autoWidth === false) { w = ln * (slideWidth + settings.slideMargin); } else { w = 0; for (var i = 0; i < ln; i++) { w += (parseInt($children.eq(i).width()) + settings.slideMargin); } } return w; }; plugin = { doCss: function () { var support = function () { var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; var root = document.documentElement; for (var i = 0; i < transition.length; i++) { if (transition[i] in root.style) { return true; } } }; if (settings.useCSS && support()) { return true; } return false; }, keyPress: function () { if (settings.keyPress) { $(document).on('keyup.lightslider', function (e) { if (!$(':focus').is('input, textarea')) { if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } if (e.keyCode === 37) { $el.goToPrevSlide(); } else if (e.keyCode === 39) { $el.goToNextSlide(); } } }); } }, controls: function () { if (settings.controls) { $el.after('
' + settings.prevHtml + '' + settings.nextHtml + '
'); if (!settings.autoWidth) { if (length <= settings.item) { $slide.find('.lSAction').hide(); } } else { if (refresh.calWidth(false) < elSize) { $slide.find('.lSAction').hide(); } } $slide.find('.lSAction a').on('click', function (e) { if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } if ($(this).attr('class') === 'lSPrev') { $el.goToPrevSlide(); } else { $el.goToNextSlide(); } return false; }); } }, initialStyle: function () { var $this = this; if (settings.mode === 'fade') { settings.autoWidth = false; settings.slideEndAnimation = false; } if (settings.auto) { settings.slideEndAnimation = false; } if (settings.autoWidth) { settings.slideMove = 1; settings.item = 1; } if (settings.loop) { settings.slideMove = 1; settings.freeMove = false; } settings.onBeforeStart.call(this, $el); refresh.chbreakpoint(); $el.addClass('lightSlider').wrap('
'); $slide = $el.parent('.lSSlideWrapper'); if (settings.rtl === true) { $slide.parent().addClass('lSrtl'); } if (settings.vertical) { $slide.parent().addClass('vertical'); elSize = settings.verticalHeight; $slide.css('height', elSize + 'px'); } else { elSize = $el.outerWidth(); } $children.addClass('lslide'); if (settings.loop === true && settings.mode === 'slide') { refresh.calSW(); refresh.clone = function () { if (refresh.calWidth(true) > elSize) { /**/ var tWr = 0, tI = 0; for (var k = 0; k < $children.length; k++) { tWr += (parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin); tI++; if (tWr >= (elSize + settings.slideMargin)) { break; } } var tItem = settings.autoWidth === true ? tI : settings.item; /**/ if (tItem < $el.find('.clone.left').length) { for (var i = 0; i < $el.find('.clone.left').length - tItem; i++) { $children.eq(i).remove(); } } if (tItem < $el.find('.clone.right').length) { for (var j = $children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--) { scene--; $children.eq(j).remove(); } } /**/ for (var n = $el.find('.clone.right').length; n < tItem; n++) { $el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el); scene++; } for (var m = $el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--) { $el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el); } $children = $el.children(); } else { if ($children.hasClass('clone')) { $el.find('.clone').remove(); $this.move($el, 0); } } }; refresh.clone(); } refresh.sSW = function () { length = $children.length; if (settings.rtl === true && settings.vertical === false) { gutter = 'margin-left'; } if (settings.autoWidth === false) { $children.css(property, slideWidth + 'px'); } $children.css(gutter, settings.slideMargin + 'px'); w = refresh.calWidth(false); $el.css(property, w + 'px'); if (settings.loop === true && settings.mode === 'slide') { if (on === false) { scene = $el.find('.clone.left').length; } } }; refresh.calL = function () { $children = $el.children(); length = $children.length; }; if (this.doCss()) { $slide.addClass('usingCss'); } refresh.calL(); if (settings.mode === 'slide') { refresh.calSW(); refresh.sSW(); if (settings.loop === true) { slideValue = $this.slideValue(); this.move($el, slideValue); } if (settings.vertical === false) { this.setHeight($el, false); } } else { this.setHeight($el, true); $el.addClass('lSFade'); if (!this.doCss()) { $children.fadeOut(0); $children.eq(scene).fadeIn(0); } } if (settings.loop === true && settings.mode === 'slide') { $children.eq(scene).addClass('active'); } else { $children.first().addClass('active'); } }, pager: function () { var $this = this; refresh.createPager = function () { thumbWidth = (elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem; var $children = $slide.find('.lslide'); var length = $slide.find('.lslide').length; var i = 0, pagers = '', v = 0; for (i = 0; i < length; i++) { if (settings.mode === 'slide') { // calculate scene * slide value if (!settings.autoWidth) { v = i * ((slideWidth + settings.slideMargin) * settings.slideMove); } else { v += ((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove); } } var thumb = $children.eq(i * settings.slideMove).attr('data-thumb'); if (settings.gallery === true) { pagers += '
  • '; } else { pagers += '
  • ' + (i + 1) + '
  • '; } if (settings.mode === 'slide') { if ((v) >= w - elSize - settings.slideMargin) { i = i + 1; var minPgr = 2; if (settings.autoWidth) { pagers += '
  • ' + (i + 1) + '
  • '; minPgr = 1; } if (i < minPgr) { pagers = null; $slide.parent().addClass('noPager'); } else { $slide.parent().removeClass('noPager'); } break; } } } var $cSouter = $slide.parent(); $cSouter.find('.lSPager').html(pagers); if (settings.gallery === true) { if (settings.vertical === true) { // set Gallery thumbnail width $cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px'); } pagerWidth = (i * (settings.thumbMargin + thumbWidth)) + 0.5; $cSouter.find('.lSPager').css({ property: pagerWidth + 'px', 'transition-duration': settings.speed + 'ms' }); if (settings.vertical === true) { $slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px'); } $cSouter.find('.lSPager').css(property, pagerWidth + 'px'); } var $pager = $cSouter.find('.lSPager').find('li'); $pager.first().addClass('active'); $pager.on('click', function () { if (settings.loop === true && settings.mode === 'slide') { scene = scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index()); } else { scene = $pager.index(this); } $el.mode(false); if (settings.gallery === true) { $this.slideThumb(); } return false; }); }; if (settings.pager) { var cl = 'lSpg'; if (settings.gallery) { cl = 'lSGallery'; } $slide.after(''); var gMargin = (settings.vertical) ? 'margin-left' : 'margin-top'; $slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px'); refresh.createPager(); } setTimeout(function () { refresh.init(); }, 0); }, setHeight: function (ob, fade) { var obj = null, $this = this; if (settings.loop) { obj = ob.children('.lslide ').first(); } else { obj = ob.children().first(); } var setCss = function () { var tH = obj.outerHeight(), tP = 0, tHT = tH; if (fade) { tH = 0; tP = ((tHT) * 100) / elSize; } ob.css({ 'height': tH + 'px', 'padding-bottom': tP + '%' }); }; setCss(); if (obj.find('img').length) { if ( obj.find('img')[0].complete) { setCss(); if (!interval) { $this.auto(); } }else{ obj.find('img').load(function () { setTimeout(function () { setCss(); if (!interval) { $this.auto(); } }, 100); }); } }else{ if (!interval) { $this.auto(); } } }, active: function (ob, t) { if (this.doCss() && settings.mode === 'fade') { $slide.addClass('on'); } var sc = 0; if (scene * settings.slideMove < length) { ob.removeClass('active'); if (!this.doCss() && settings.mode === 'fade' && t === false) { ob.fadeOut(settings.speed); } if (t === true) { sc = scene; } else { sc = scene * settings.slideMove; } //t === true ? sc = scene : sc = scene * settings.slideMove; var l, nl; if (t === true) { l = ob.length; nl = l - 1; if (sc + 1 >= l) { sc = nl; } } if (settings.loop === true && settings.mode === 'slide') { //t === true ? sc = scene - $el.find('.clone.left').length : sc = scene * settings.slideMove; if (t === true) { sc = scene - $el.find('.clone.left').length; } else { sc = scene * settings.slideMove; } if (t === true) { l = ob.length; nl = l - 1; if (sc + 1 === l) { sc = nl; } else if (sc + 1 > l) { sc = 0; } } } if (!this.doCss() && settings.mode === 'fade' && t === false) { ob.eq(sc).fadeIn(settings.speed); } ob.eq(sc).addClass('active'); } else { ob.removeClass('active'); ob.eq(ob.length - 1).addClass('active'); if (!this.doCss() && settings.mode === 'fade' && t === false) { ob.fadeOut(settings.speed); ob.eq(sc).fadeIn(settings.speed); } } }, move: function (ob, v) { if (settings.rtl === true) { v = -v; } if (this.doCss()) { if (settings.vertical === true) { ob.css({ 'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)', '-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)' }); } else { ob.css({ 'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)', '-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)', }); } } else { if (settings.vertical === true) { ob.css('position', 'relative').animate({ top: -v + 'px' }, settings.speed, settings.easing); } else { ob.css('position', 'relative').animate({ left: -v + 'px' }, settings.speed, settings.easing); } } var $thumb = $slide.parent().find('.lSPager').find('li'); this.active($thumb, true); }, fade: function () { this.active($children, false); var $thumb = $slide.parent().find('.lSPager').find('li'); this.active($thumb, true); }, slide: function () { var $this = this; refresh.calSlide = function () { if (w > elSize) { slideValue = $this.slideValue(); $this.active($children, false); if ((slideValue) > w - elSize - settings.slideMargin) { slideValue = w - elSize - settings.slideMargin; } else if (slideValue < 0) { slideValue = 0; } $this.move($el, slideValue); if (settings.loop === true && settings.mode === 'slide') { if (scene >= (length - ($el.find('.clone.left').length / settings.slideMove))) { $this.resetSlide($el.find('.clone.left').length); } if (scene === 0) { $this.resetSlide($slide.find('.lslide').length); } } } }; refresh.calSlide(); }, resetSlide: function (s) { var $this = this; $slide.find('.lSAction a').addClass('disabled'); setTimeout(function () { scene = s; $slide.css('transition-duration', '0ms'); slideValue = $this.slideValue(); $this.active($children, false); plugin.move($el, slideValue); setTimeout(function () { $slide.css('transition-duration', settings.speed + 'ms'); $slide.find('.lSAction a').removeClass('disabled'); }, 50); }, settings.speed + 100); }, slideValue: function () { var _sV = 0; if (settings.autoWidth === false) { _sV = scene * ((slideWidth + settings.slideMargin) * settings.slideMove); } else { _sV = 0; for (var i = 0; i < scene; i++) { _sV += (parseInt($children.eq(i).width()) + settings.slideMargin); } } return _sV; }, slideThumb: function () { var position; switch (settings.currentPagerPosition) { case 'left': position = 0; break; case 'middle': position = (elSize / 2) - (thumbWidth / 2); break; case 'right': position = elSize - thumbWidth; } var sc = scene - $el.find('.clone.left').length; var $pager = $slide.parent().find('.lSPager'); if (settings.mode === 'slide' && settings.loop === true) { if (sc >= $pager.children().length) { sc = 0; } else if (sc < 0) { sc = $pager.children().length; } } var thumbSlide = sc * ((thumbWidth + settings.thumbMargin)) - (position); if ((thumbSlide + elSize) > pagerWidth) { thumbSlide = pagerWidth - elSize - settings.thumbMargin; } if (thumbSlide < 0) { thumbSlide = 0; } this.move($pager, thumbSlide); }, auto: function () { if (settings.auto) { clearInterval(interval); interval = setInterval(function () { $el.goToNextSlide(); }, settings.pause); } }, pauseOnHover: function(){ var $this = this; if (settings.auto && settings.pauseOnHover) { $slide.on('mouseenter', function(){ $(this).addClass('ls-hover'); $el.pause(); settings.auto = true; }); $slide.on('mouseleave',function(){ $(this).removeClass('ls-hover'); if (!$slide.find('.lightSlider').hasClass('lsGrabbing')) { $this.auto(); } }); } }, touchMove: function (endCoords, startCoords) { $slide.css('transition-duration', '0ms'); if (settings.mode === 'slide') { var distance = endCoords - startCoords; var swipeVal = slideValue - distance; if ((swipeVal) >= w - elSize - settings.slideMargin) { if (settings.freeMove === false) { swipeVal = w - elSize - settings.slideMargin; } else { var swipeValT = w - elSize - settings.slideMargin; swipeVal = swipeValT + ((swipeVal - swipeValT) / 5); } } else if (swipeVal < 0) { if (settings.freeMove === false) { swipeVal = 0; } else { swipeVal = swipeVal / 5; } } this.move($el, swipeVal); } }, touchEnd: function (distance) { $slide.css('transition-duration', settings.speed + 'ms'); if (settings.mode === 'slide') { var mxVal = false; var _next = true; slideValue = slideValue - distance; if ((slideValue) > w - elSize - settings.slideMargin) { slideValue = w - elSize - settings.slideMargin; if (settings.autoWidth === false) { mxVal = true; } } else if (slideValue < 0) { slideValue = 0; } var gC = function (next) { var ad = 0; if (!mxVal) { if (next) { ad = 1; } } if (!settings.autoWidth) { var num = slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove); scene = parseInt(num) + ad; if (slideValue >= (w - elSize - settings.slideMargin)) { if (num % 1 !== 0) { scene++; } } } else { var tW = 0; for (var i = 0; i < $children.length; i++) { tW += (parseInt($children.eq(i).width()) + settings.slideMargin); scene = i + ad; if (tW >= slideValue) { break; } } } }; if (distance >= settings.swipeThreshold) { gC(false); _next = false; } else if (distance <= -settings.swipeThreshold) { gC(true); _next = false; } $el.mode(_next); this.slideThumb(); } else { if (distance >= settings.swipeThreshold) { $el.goToPrevSlide(); } else if (distance <= -settings.swipeThreshold) { $el.goToNextSlide(); } } }, enableDrag: function () { var $this = this; if (!isTouch) { var startCoords = 0, endCoords = 0, isDraging = false; $slide.find('.lightSlider').addClass('lsGrab'); $slide.on('mousedown', function (e) { if (w < elSize) { if (w !== 0) { return false; } } if ($(e.target).attr('class') !== ('lSPrev') && $(e.target).attr('class') !== ('lSNext')) { startCoords = (settings.vertical === true) ? e.pageY : e.pageX; isDraging = true; if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 $slide.scrollLeft += 1; $slide.scrollLeft -= 1; // * $slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing'); clearInterval(interval); } }); $(window).on('mousemove', function (e) { if (isDraging) { endCoords = (settings.vertical === true) ? e.pageY : e.pageX; $this.touchMove(endCoords, startCoords); } }); $(window).on('mouseup', function (e) { if (isDraging) { $slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab'); isDraging = false; endCoords = (settings.vertical === true) ? e.pageY : e.pageX; var distance = endCoords - startCoords; if (Math.abs(distance) >= settings.swipeThreshold) { $(window).on('click.ls', function (e) { if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } e.stopImmediatePropagation(); e.stopPropagation(); $(window).off('click.ls'); }); } $this.touchEnd(distance); } }); } }, enableTouch: function () { var $this = this; if (isTouch) { var startCoords = {}, endCoords = {}; $slide.on('touchstart', function (e) { endCoords = e.originalEvent.targetTouches[0]; startCoords.pageX = e.originalEvent.targetTouches[0].pageX; startCoords.pageY = e.originalEvent.targetTouches[0].pageY; clearInterval(interval); }); $slide.on('touchmove', function (e) { if (w < elSize) { if (w !== 0) { return false; } } var orig = e.originalEvent; endCoords = orig.targetTouches[0]; var xMovement = Math.abs(endCoords.pageX - startCoords.pageX); var yMovement = Math.abs(endCoords.pageY - startCoords.pageY); if (settings.vertical === true) { if ((yMovement * 3) > xMovement) { e.preventDefault(); } $this.touchMove(endCoords.pageY, startCoords.pageY); } else { if ((xMovement * 3) > yMovement) { e.preventDefault(); } $this.touchMove(endCoords.pageX, startCoords.pageX); } }); $slide.on('touchend', function () { if (w < elSize) { if (w !== 0) { return false; } } var distance; if (settings.vertical === true) { distance = endCoords.pageY - startCoords.pageY; } else { distance = endCoords.pageX - startCoords.pageX; } $this.touchEnd(distance); }); } }, build: function () { var $this = this; $this.initialStyle(); if (this.doCss()) { if (settings.enableTouch === true) { $this.enableTouch(); } if (settings.enableDrag === true) { $this.enableDrag(); } } $(window).on('focus', function(){ $this.auto(); }); $(window).on('blur', function(){ clearInterval(interval); }); $this.pager(); $this.pauseOnHover(); $this.controls(); $this.keyPress(); } }; plugin.build(); refresh.init = function () { refresh.chbreakpoint(); if (settings.vertical === true) { if (settings.item > 1) { elSize = settings.verticalHeight; } else { elSize = $children.outerHeight(); } $slide.css('height', elSize + 'px'); } else { elSize = $slide.outerWidth(); } if (settings.loop === true && settings.mode === 'slide') { refresh.clone(); } refresh.calL(); if (settings.mode === 'slide') { $el.removeClass('lSSlide'); } if (settings.mode === 'slide') { refresh.calSW(); refresh.sSW(); } setTimeout(function () { if (settings.mode === 'slide') { $el.addClass('lSSlide'); } }, 1000); if (settings.pager) { refresh.createPager(); } if (settings.adaptiveHeight === true && settings.vertical === false) { $el.css('height', $children.eq(scene).outerHeight(true)); } if (settings.adaptiveHeight === false) { if (settings.mode === 'slide') { if (settings.vertical === false) { plugin.setHeight($el, false); }else{ plugin.auto(); } } else { plugin.setHeight($el, true); } } if (settings.gallery === true) { plugin.slideThumb(); } if (settings.mode === 'slide') { plugin.slide(); } if (settings.autoWidth === false) { if ($children.length <= settings.item) { $slide.find('.lSAction').hide(); } else { $slide.find('.lSAction').show(); } } else { if ((refresh.calWidth(false) < elSize) && (w !== 0)) { $slide.find('.lSAction').hide(); } else { $slide.find('.lSAction').show(); } } }; $el.goToPrevSlide = function () { if (scene > 0) { settings.onBeforePrevSlide.call(this, $el, scene); scene--; $el.mode(false); if (settings.gallery === true) { plugin.slideThumb(); } } else { if (settings.loop === true) { settings.onBeforePrevSlide.call(this, $el, scene); if (settings.mode === 'fade') { var l = (length - 1); scene = parseInt(l / settings.slideMove); } $el.mode(false); if (settings.gallery === true) { plugin.slideThumb(); } } else if (settings.slideEndAnimation === true) { $el.addClass('leftEnd'); setTimeout(function () { $el.removeClass('leftEnd'); }, 400); } } }; $el.goToNextSlide = function () { var nextI = true; if (settings.mode === 'slide') { var _slideValue = plugin.slideValue(); nextI = _slideValue < w - elSize - settings.slideMargin; } if (((scene * settings.slideMove) < length - settings.slideMove) && nextI) { settings.onBeforeNextSlide.call(this, $el, scene); scene++; $el.mode(false); if (settings.gallery === true) { plugin.slideThumb(); } } else { if (settings.loop === true) { settings.onBeforeNextSlide.call(this, $el, scene); scene = 0; $el.mode(false); if (settings.gallery === true) { plugin.slideThumb(); } } else if (settings.slideEndAnimation === true) { $el.addClass('rightEnd'); setTimeout(function () { $el.removeClass('rightEnd'); }, 400); } } }; $el.mode = function (_touch) { if (settings.adaptiveHeight === true && settings.vertical === false) { $el.css('height', $children.eq(scene).outerHeight(true)); } if (on === false) { if (settings.mode === 'slide') { if (plugin.doCss()) { $el.addClass('lSSlide'); if (settings.speed !== '') { $slide.css('transition-duration', settings.speed + 'ms'); } if (settings.cssEasing !== '') { $slide.css('transition-timing-function', settings.cssEasing); } } } else { if (plugin.doCss()) { if (settings.speed !== '') { $el.css('transition-duration', settings.speed + 'ms'); } if (settings.cssEasing !== '') { $el.css('transition-timing-function', settings.cssEasing); } } } } if (!_touch) { settings.onBeforeSlide.call(this, $el, scene); } if (settings.mode === 'slide') { plugin.slide(); } else { plugin.fade(); } if (!$slide.hasClass('ls-hover')) { plugin.auto(); } setTimeout(function () { if (!_touch) { settings.onAfterSlide.call(this, $el, scene); } }, settings.speed); on = true; }; $el.play = function () { $el.goToNextSlide(); settings.auto = true; plugin.auto(); }; $el.pause = function () { settings.auto = false; clearInterval(interval); }; $el.refresh = function () { refresh.init(); }; $el.getCurrentSlideCount = function () { var sc = scene; if (settings.loop) { var ln = $slide.find('.lslide').length, cl = $el.find('.clone.left').length; if (scene <= cl - 1) { sc = ln + (scene - cl); } else if (scene >= (ln + cl)) { sc = scene - ln - cl; } else { sc = scene - cl; } } return sc + 1; }; $el.getTotalSlideCount = function () { return $slide.find('.lslide').length; }; $el.goToSlide = function (s) { if (settings.loop) { scene = (s + $el.find('.clone.left').length - 1); } else { scene = s; } $el.mode(false); if (settings.gallery === true) { plugin.slideThumb(); } }; $el.destroy = function () { if ($el.lightSlider) { $el.goToPrevSlide = function(){}; $el.goToNextSlide = function(){}; $el.mode = function(){}; $el.play = function(){}; $el.pause = function(){}; $el.refresh = function(){}; $el.getCurrentSlideCount = function(){}; $el.getTotalSlideCount = function(){}; $el.goToSlide = function(){}; $el.lightSlider = null; refresh = { init : function(){} }; $el.parent().parent().find('.lSAction, .lSPager').remove(); $el.removeClass('lightSlider lSFade lSSlide lsGrab lsGrabbing leftEnd right').removeAttr('style').unwrap().unwrap(); $el.children().removeAttr('style'); $children.removeClass('lslide active'); $el.find('.clone').remove(); $children = null; interval = null; on = false; scene = 0; } }; setTimeout(function () { settings.onSliderLoad.call(this, $el); }, 10); $(window).on('resize orientationchange', function (e) { setTimeout(function () { if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } refresh.init(); }, 200); }); return this; }; }(jQuery)); jQuery(document).ready(function(){ jQuery("#as-content-slider").lightSlider({ loop:true, keyPress:true }); }); var imgNames = []; var allimages = []; var image_date = null; var image_id = null; var comments = null; var likes = null; var captions = null; var link_posts=null; var result = null; var handle = null; var x = null; var y = null; var fullusernames = null; var textcomment = null; var comment_json_string= null; var $see_all_link = $("#as-instagram-post"); var $see_all = $("#see_all"); var $see_all_popup = $("#see_all_popup"); var $div = $("#as-content-slider"); var $secdiv = $(".popbox"); $.each(imgNames, function(i, val) { $("").css({"float":"left", "width":"100%","display":"none"}).attr("src", val).appendTo($div); }); $("#as-content-slider img").each(function(index, value){ var imgs=imgNames[index]; $(this).wrap("
    "+comments[index]+"
    "+likes[index]+"
    "); }); $.each(imgNames, function(i, val) { if(captions[i].length>0) { var captionss='

    '+ captions[i] +'

    '; } else { var captionss=''; } if(i==0) { nextbtn=i+1; prebtn=imgNames.length-1; } else if(i==(imgNames.length-1)) { nextbtn=0; prebtn=i-1; } else { nextbtn=i+1; prebtn=i-1; } btngrps=''; var btngrps=''; $('.popbox').append('
    '+comments[i]+'
    '+likes[i]+'
    '+ image_date[i] +'
    View Post
    '+captionss+'
    '+btngrps+'
    '); }); $(".ps_mod_left").each(function(index, value){ $(this).append("
    "); }); $(".ps_products .ps_product_wrper").each(function(index, value) { var pic_id = image_id[index]; objs=$(this); if(result!=null) { for (i = 0; i < result.length; i++) { if (result[i]['picture_id'] == pic_id ) { var product_name = result[i]['product_name']; var product_handle = result[i]['product_handle']; var picture_id = result[i]['picture_id']; var product_image_url=result[i]['product_image_url']; var product_price=result[i]['product_price']; var x_axis = result[i]['x']; var y_axis = result[i]['y']; var shopname = 'shop137.myshopify.com'; var handle_js='https://'+shopname+'/products/'+ product_handle +'.js'; var featured_image; $.getJSON(handle_js, function(result){ featured_image=result.images; }); //alert(featured_image); var product_img_source=" "; var fb_link="//www.facebook.com/sharer.php?u="; var product_handle_fb= "https://"+shopname+"/products/"+product_handle+"/"; var fb_url=fb_link+product_handle_fb; var twitterlink="//twitter.com/share?text="+product_name+"&url="; var twitter_url=twitterlink+product_handle_fb; var pintrest_link="//pinterest.com/pin/create/button/?url="+product_handle_fb+"&media="+product_image_url+"&description="+product_name; var sharing= "
    "; sharing+= ""; sharing+= ""; sharing +="
    " var product_span=""+product_name+" $"+product_price+""; var div_product_image="
    "; var div_product_poprice="

    Dhs. "+product_price+"

    "; $(this).append("
    "+div_product_image+div_product_poprice+""+sharing+"
    "); } } } else { $(this).append("
    "); } }); $(".ps_mod_left").find('.tagbox').each(function(index, value){ var pic_id = image_id[index]; if(result!=null) { for (i = 0; i < result.length; i++) { if (result[i]['picture_id'] == pic_id ) { var product_name = result[i]['product_name']; var product_handle = result[i]['product_handle']; var picture_id = result[i]['picture_id']; var product_image_url=result[i]['product_image_url']; var product_price=result[i]['product_price']; var x_axis = result[i]['x']; var y_axis = result[i]['y']; var shopname = 'shop137.myshopify.com'; var handle_js='https://'+shopname+'/products/'+ product_handle +'.js'; var featured_image; $.getJSON(handle_js, function(result){ featured_image=result.images; }); // alert(featured_image); $(this).append("
    "); } } } else { } }); $('.ps_prod').on( 'mouseover', function( ) { var ids = $(this).attr("id"); $('#view' + ids).css({ opacity: 1.0 }); }); $('.ps_prod').on( 'mouseout', function( ) { var ids = $(this).attr("id"); $('#view' + ids).css({ opacity: 0 }); }); $( '.tagbox' ).on( 'mouseover', '.tagview', function( ) { var pos = $( this ).position(); $(this).css({ opacity: 1.0 }); }).on( 'mouseout', '.tagview', function( ) { $(this).css({ opacity: 0 }); }); $( '.tagbox' ).on( 'mouseover', '.tagview', function( ) { var pos = $( this ).position(); var ids = $( this ).attr('id'); var idt=ids.split('iew'); var curid=idt[1]; $('.ps_product_wrper').find('#'+curid).css("border","1px solid #333333"); $(this).css({ opacity: 1.0 }); }).on( 'mouseout', '.tagview', function( ) { $(this).css({ opacity: 0.5 }); var ids = $( this ).attr('id'); var idt=ids.split('iew'); var curid=idt[1]; $('.ps_product_wrper').find('#'+curid).removeAttr("style"); }); $(document).ready(function(){ $('.insta-heading').text('Shoppable Instagram Posts'); $('.lSSlideOuter').css('background-color','#ffffff'); $('.lSSlideOuter').css('border','1px solid #ffffff'); $('.insta-wrapper').css('color','#333333'); $('.as-view-post a').css('color','#333333'); $('.as-likes .fa-heart').css('color','#333333'); $('.ps_insta_status span,.ps_insta_status a').css('color','#333333'); $('.insta_caption p').css('color','#333333'); $('.ps_insta_head span').css('color','#333333'); $('.ps_insta_head').css('color','#333333'); }); $(document).on('click touchstart','.ps_slide_content', function () { var imgidstr=$(this).attr('dataimg'); var imgidar=imgidstr.split('_'); var imgstring=imgidar[1]; $("#pspop_"+imgstring).addClass('modal_activ'); }); $(document).on('click','.ps_pre_button',function(e){ e.stopPropagation(); var preid=$(this).attr('pid'); $(this).parent().parent().removeClass('modal_activ'); $('#'+preid).addClass('modal_activ'); }) $(document).on('click','.ps_next_button',function(e){ e.stopPropagation(); var nextid=$(this).attr('nid'); $(this).parent().parent().removeClass('modal_activ'); $('#'+nextid).addClass('modal_activ'); }) $('.ps_clos_modal').on('click', function (e) { e.stopPropagation(); $(this).parent().parent().removeClass('modal_activ'); }); $('.ps_modal-toggle_bg').on('click', function(e) { $(this).parent().removeClass('modal_activ'); }); leftinitar=[]; topinitar=[]; $('.tagbox .tagview').each(function(){ var tagviewobj=$(this); var str=tagviewobj.attr('style'); var resar = str.split(";"); var leftstr=resar[0]; var topstr=resar[1]; topstr = topstr.slice(0, -2); leftstr=leftstr.slice(0, -2); topar=topstr.split(':'); leftar=leftstr.split(':'); leftstring=leftar[1].trim(); topstring=topar[1].trim(); /* desktop */ leftpx=parseInt(leftstring); toppx=parseInt(topstring); leftinitar.push(leftpx); topinitar.push(toppx); }); //console.log(leftinitar); /* $(window).resize(function() { if (window.matchMedia('(min-width:320px) and (max-width: 767px)').matches) { console.log("test Mobile"); } else if (window.matchMedia('(min-width:768px) and (max-width: 1159px)').matches) { //console.log("Tablet"); } else { //console.log("Large Desktop"); } }); */ (function (window, document, undefined) { // Initialize the media query var MobilemediaQuery = window.matchMedia('(min-width:320px) and (max-width: 767px)'); var TabletmediaQuery = window.matchMedia('(min-width:768px) and (max-width: 1159px)'); var DesktopmediaQuery = window.matchMedia('(min-width:1160px)'); // Add a listen event MobilemediaQuery.addListener(doSomething); TabletmediaQuery.addListener(doSomething1); DesktopmediaQuery.addListener(doSomething2); //mobile function doSomething(MobilemediaQuery) { if (MobilemediaQuery.matches) { $('.tagbox .tagview').each(function(i){ var tagviewobj=$(this); mobileleftpx=leftinitar[i]; mobiletoppx=topinitar[i]; mobiledropleft=(38/100)*mobileleftpx; mobiledropleft=Math.ceil(mobiledropleft); nleftpx=mobileleftpx-mobiledropleft; mobiledroptop=(40/100)*mobiletoppx; mobiledroptop=Math.ceil(mobiledroptop); ntoppx=mobiletoppx-mobiledroptop; var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;"; tagviewobj.attr('style',str1); }); } } //tablets function doSomething1(TabletmediaQuery) { if(TabletmediaQuery.matches) { $('.tagbox .tagview').each(function(i){ var tagviewobj=$(this); tabletleftpx=leftinitar[i]; tablettoppx=topinitar[i]; tabletdropleft=(26/100)*tabletleftpx; tabletdropleft=Math.ceil(tabletdropleft); nleftpx=tabletleftpx-tabletdropleft; tabletdroptop=(26/100)*tablettoppx; tabletdroptop=Math.ceil(tabletdroptop); ntoppx=tablettoppx-tabletdroptop; var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;"; tagviewobj.attr('style',str1); }); } } //desktop function doSomething2(DesktopmediaQuery) { if(DesktopmediaQuery.matches) { $('.tagbox .tagview').each(function(i){ var tagviewobj=$(this); desktopleftpx=leftinitar[i]; desktoptoppx=topinitar[i]; nleftpx=desktopleftpx; ntoppx=desktoptoppx; var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;"; tagviewobj.attr('style',str1); }); } } doSomething(MobilemediaQuery); doSomething1(TabletmediaQuery); doSomething2(DesktopmediaQuery); })(window, document);