Вход Регистрация
Файл: adultscript-2.0.3-pro/files/misc/lightSlider/js/jquery.lightSlider.js
Строк: 1040
<?php
/** ==========================================================

* jquery lightSlider.js v1.1.1
* http://sachinchoolur.github.io/lightslider/
* Released under the MIT License - http://opensource.org/licenses/mit-license.html  ---- FREE ----

=========================================================/**/
;
(function ($, 
undefined) {
    
"use strict";
    var 
defaults = {
        
item: 3,
        
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,
        
loop: false,
        
slideEndAnimatoin: 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: 5,
        
thumbMargin: 5,
        
currentPagerPosition: 'middle',
        
enableTouch: true,
        
enableDrag: true,
        
freeMove: true,
        
swipeThreshold: 40,
        
responsive: [],
        
onBeforeStart: function ($el) {},
        
onSliderLoad: function ($el) {},
        
onBeforeSlide: function ($el, scene) {},
        
onAfterSlide: function ($el, scene) {},
        
onBeforeNextSlide: function ($el, scene) {},
        
onBeforePrevSlide: function ($el, scene) {}
    };
    $.
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 = new Object();

        
refresh.chbreakpoint = function () {
            
windowW = $(window).width();
            if (
settings.responsive.length) {
                if (
settings.autoWidth === false) {
                    var 
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 (
i in resposiveObj.settings) {
                        if (
typeof settingsTemp[i] == "undefined" || settingsTemp[i] == null) {
                            
settingsTemp[i] = settings[i];
                        }
                        
settings[i] = resposiveObj.settings[i];
                    }
                }
                if (!$.
isEmptyObject(settingsTemp) && windowW > settings.responsive[0].breakpoint) {
                    for (
i in settingsTemp) {
                        
settings[i] = settingsTemp[i];
                    }
                }
                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);
                }
            }
            if (
w % 1 !== 0) {
                
w = w + 1;
            }
            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) {
                        
e.preventDefault();
                        if (
e.keyCode === 37) {
                            
$el.goToPrevSlide();
                            
clearInterval(interval);
                        } else if (
e.keyCode === 39) {
                            
$el.goToNextSlide();
                            
clearInterval(interval);
                        }
                    });
                }
            },
            
controls: function () {
                if (
settings.controls) {
                    
$el.after('<div class="lSAction"><a class="lSPrev">' + settings.prevHtml + '</a><a class="lSNext">' + settings.nextHtml + '</a></div>');
                    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) {
                        
e.preventDefault();
                        if ($(
this).attr('class') === 'lSPrev') {
                            
$el.goToPrevSlide();
                        } else {
                            
$el.goToNextSlide();
                        }
                        
clearInterval(interval);
                        return 
false;
                    });
                }
            },
            
initialStyle: function () {
                var 
$this = this;
                if (
settings.mode === 'fade') {
                    
settings.autoWidth = false;
                    
settings.slideEndAnimatoin = false;
                }
                if (
settings.auto) {
                    
settings.slideEndAnimatoin = 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("<div class='lSSlideOuter " + settings.addClass + "'><div class='lSSlideWrapper'></div></div>");
                
$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 k = $el.find('.clone.right').length; k < tItem; k++) {
                                
$el.find('.lslide').eq(k).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, true);
                    }

                } else {
                    
this.setHeight($el, true, true);
                    
$el.addClass('lSFade');
                    if (!
this.doCss()) {
                        
$children.not(".active").css('display', 'none');
                    }
                }
                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 += '<li style="width:100%;' + property + ':' + thumbWidth + 'px;' + gutter + ':' + settings.thumbMargin + 'px"><a href="#"><img src="' + thumb + '" /></a></li>';
                        } else {
                            
pagers += '<li><a href="#">' + (i + 1) + '</a></li>';
                        }
                        if (
settings.mode === 'slide') {
                            if ((
v) >= w - elSize - settings.slideMargin) {
                                
i = i + 1;
                                var 
minPgr = 2;
                                if (
settings.autoWidth) {
                                    
pagers += '<li><a href="#">' + (i + 1) + '</a></li>';
                                    
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.vertical && settings.gallery) {
                        var 
$pgr = $slide.parent().find('.lSGallery');
                        
setTimeout(function () {
                            
$this.setHeight($pgr, false, false);
                        });
                    }
                    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();
                        }
                        
clearInterval(interval);
                        return 
false;
                    });
                };
                if (
settings.pager) {
                    var 
cl = 'lSpg';
                    if (
settings.gallery) {
                        
cl = 'lSGallery';
                    }
                    
$slide.after('<ul class="lSPager ' + cl + '"></ul>');
                    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, loop) {
                var 
obj = null;
                if (
loop) {
                    
obj = ob.children(".lslide ").first();
                }else{
                    
obj = ob.children().first();
                }
                var 
setCss = function () {
                    var 
tH = obj.height(),
                        
tP = 0,
                        
tHT = tH;
                    if (
fade) {
                        
tH = 0;
                        
tP = ((tHT) * 100) / elSize;
                    }
                    
ob.css({
                        
'height': tH + 'px',
                        
'padding-bottom': tP + '%'
                    
});
                };
                
setCss();
                
obj.find('img').load(function () {
                    
setTimeout(function(){
                        
setCss();
                    },
100);
                });
            },
            
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);
                    }
                    
t === true ? sc = scene : sc = scene * settings.slideMove;
                    if (
t === true) {
                        var 
l = ob.length;
                        var 
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) {
                            var 
l = ob.length;
                            var 
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) {
                    
interval = setInterval(function () {
                        
$el.goToNextSlide();
                    }, 
settings.pause);
                }
            },

            
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');
                
clearInterval(interval);
                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.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;
                            
e.preventDefault();
                        }
                    });
                    $(
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) {
                            
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) {
                                    
e.preventDefault();
                                    
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;
                    });
                    
$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;
                            }
                        }
                        if (
settings.vertical === true) {
                            var 
distance = endCoords.pageY - startCoords.pageY;
                        } else {
                            var 
distance = endCoords.pageX - startCoords.pageX;
                        }
                        
$this.touchEnd(distance);
                    });
                }
            },
            
build: function () {
                var 
$this = this;
                
$this.initialStyle();
                
$this.auto();
                if (
this.doCss()) {

                    if (
settings.enableTouch === true) {
                        
$this.enableTouch();
                    }
                    if (
settings.enableDrag === true) {
                        
$this.enableDrag();
                    }
                }
                
$this.pager();
                
$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).height());
            }
            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.slideEndAnimatoin === true) {
                    
$el.addClass('leftEnd');
                    
setTimeout(function () {
                        
$el.removeClass('leftEnd');
                    }, 
400);
                }
            }
        };
        
$el.goToNextSlide = function () {
            var 
nextI = true;
            if (
settings.mode === 'slide') {
                var 
_slideValue = plugin.slideValue();
                var 
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.slideEndAnimatoin === 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).height());
            }
            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();
            }
            
setTimeout(function () {
                if (!
_touch) {
                    
settings.onAfterSlide.call(this, $el, scene);
                }
            }, 
settings.speed);
            
on = true;
        };
        
$el.play = function () {
            
clearInterval(interval);
            
$el.goToNextSlide();
            
interval = setInterval(function () {
                
$el.goToNextSlide();
            }, 
settings.pause);
        };
        
$el.pause = function () {
            
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();
            }
        };
        
setTimeout(function(){
            
settings.onSliderLoad.call(this, $el);
        },
10);
        $(
window).on('resize orientationchange', function (e) {
            
setTimeout(function () {
                
e.preventDefault();
                
refresh.init();
            }, 
200);
        });
        return 
this;
    };
}(
jQuery));
?>
Онлайн: 4
Реклама