12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517 |
- /*
- * jQuery OwlCarousel v1.3.3
- *
- * Copyright (c) 2013 Bartosz Wojciechowski
- * http://www.owlgraphic.com/owlcarousel/
- *
- * Licensed under MIT
- *
- */
- /*JS Lint helpers: */
- /*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
- /*jslint nomen: true, continue:true */
- if (typeof Object.create !== "function") {
- Object.create = function (obj) {
- function F() {}
- F.prototype = obj;
- return new F();
- };
- }
- (function ($, window, document) {
- var Carousel = {
- init : function (options, el) {
- var base = this;
- base.$elem = $(el);
- base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
- base.userOptions = options;
- base.loadContent();
- },
- loadContent : function () {
- var base = this, url;
- function getData(data) {
- var i, content = "";
- if (typeof base.options.jsonSuccess === "function") {
- base.options.jsonSuccess.apply(this, [data]);
- } else {
- for (i in data.owl) {
- if (data.owl.hasOwnProperty(i)) {
- content += data.owl[i].item;
- }
- }
- base.$elem.html(content);
- }
- base.logIn();
- }
- if (typeof base.options.beforeInit === "function") {
- base.options.beforeInit.apply(this, [base.$elem]);
- }
- if (typeof base.options.jsonPath === "string") {
- url = base.options.jsonPath;
- $.getJSON(url, getData);
- } else {
- base.logIn();
- }
- },
- logIn : function () {
- var base = this;
- base.$elem.data({
- "owl-originalStyles": base.$elem.attr("style"),
- "owl-originalClasses": base.$elem.attr("class")
- });
- base.$elem.css({opacity: 0});
- base.orignalItems = base.options.items;
- base.checkBrowser();
- base.wrapperWidth = 0;
- base.checkVisible = null;
- base.setVars();
- },
- setVars : function () {
- var base = this;
- if (base.$elem.children().length === 0) {return false; }
- base.baseClass();
- base.eventTypes();
- base.$userItems = base.$elem.children();
- base.itemsAmount = base.$userItems.length;
- base.wrapItems();
- base.$owlItems = base.$elem.find(".owl-item");
- base.$owlWrapper = base.$elem.find(".owl-wrapper");
- base.playDirection = "next";
- base.prevItem = 0;
- base.prevArr = [0];
- base.currentItem = 0;
- base.customEvents();
- base.onStartup();
- },
- onStartup : function () {
- var base = this;
- base.updateItems();
- base.calculateAll();
- base.buildControls();
- base.updateControls();
- base.response();
- base.moveEvents();
- base.stopOnHover();
- base.owlStatus();
- if (base.options.transitionStyle !== false) {
- base.transitionTypes(base.options.transitionStyle);
- }
- if (base.options.autoPlay === true) {
- base.options.autoPlay = 5000;
- }
- base.play();
- base.$elem.find(".owl-wrapper").css("display", "block");
- if (!base.$elem.is(":visible")) {
- base.watchVisibility();
- } else {
- base.$elem.css("opacity", 1);
- }
- base.onstartup = false;
- base.eachMoveUpdate();
- if (typeof base.options.afterInit === "function") {
- base.options.afterInit.apply(this, [base.$elem]);
- }
- },
- eachMoveUpdate : function () {
- var base = this;
- if (base.options.lazyLoad === true) {
- base.lazyLoad();
- }
- if (base.options.autoHeight === true) {
- base.autoHeight();
- }
- base.onVisibleItems();
- if (typeof base.options.afterAction === "function") {
- base.options.afterAction.apply(this, [base.$elem]);
- }
- },
- updateVars : function () {
- var base = this;
- if (typeof base.options.beforeUpdate === "function") {
- base.options.beforeUpdate.apply(this, [base.$elem]);
- }
- base.watchVisibility();
- base.updateItems();
- base.calculateAll();
- base.updatePosition();
- base.updateControls();
- base.eachMoveUpdate();
- if (typeof base.options.afterUpdate === "function") {
- base.options.afterUpdate.apply(this, [base.$elem]);
- }
- },
- reload : function () {
- var base = this;
- window.setTimeout(function () {
- base.updateVars();
- }, 0);
- },
- watchVisibility : function () {
- var base = this;
- if (base.$elem.is(":visible") === false) {
- base.$elem.css({opacity: 0});
- window.clearInterval(base.autoPlayInterval);
- window.clearInterval(base.checkVisible);
- } else {
- return false;
- }
- base.checkVisible = window.setInterval(function () {
- if (base.$elem.is(":visible")) {
- base.reload();
- base.$elem.animate({opacity: 1}, 200);
- window.clearInterval(base.checkVisible);
- }
- }, 500);
- },
- wrapItems : function () {
- var base = this;
- base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
- base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
- base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
- base.$elem.css("display", "block");
- },
- baseClass : function () {
- var base = this,
- hasBaseClass = base.$elem.hasClass(base.options.baseClass),
- hasThemeClass = base.$elem.hasClass(base.options.theme);
- if (!hasBaseClass) {
- base.$elem.addClass(base.options.baseClass);
- }
- if (!hasThemeClass) {
- base.$elem.addClass(base.options.theme);
- }
- },
- updateItems : function () {
- var base = this, width, i;
- if (base.options.responsive === false) {
- return false;
- }
- if (base.options.singleItem === true) {
- base.options.items = base.orignalItems = 1;
- base.options.itemsCustom = false;
- base.options.itemsDesktop = false;
- base.options.itemsDesktopSmall = false;
- base.options.itemsTablet = false;
- base.options.itemsTabletSmall = false;
- base.options.itemsMobile = false;
- return false;
- }
- width = $(base.options.responsiveBaseWidth).width();
- if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
- base.options.items = base.orignalItems;
- }
- if (base.options.itemsCustom !== false) {
- //Reorder array by screen size
- base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
- for (i = 0; i < base.options.itemsCustom.length; i += 1) {
- if (base.options.itemsCustom[i][0] <= width) {
- base.options.items = base.options.itemsCustom[i][1];
- }
- }
- } else {
- if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
- base.options.items = base.options.itemsDesktop[1];
- }
- if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
- base.options.items = base.options.itemsDesktopSmall[1];
- }
- if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
- base.options.items = base.options.itemsTablet[1];
- }
- if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
- base.options.items = base.options.itemsTabletSmall[1];
- }
- if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
- base.options.items = base.options.itemsMobile[1];
- }
- }
- //if number of items is less than declared
- if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
- base.options.items = base.itemsAmount;
- }
- },
- response : function () {
- var base = this,
- smallDelay,
- lastWindowWidth;
- if (base.options.responsive !== true) {
- return false;
- }
- lastWindowWidth = $(window).width();
- base.resizer = function () {
- if ($(window).width() !== lastWindowWidth) {
- if (base.options.autoPlay !== false) {
- window.clearInterval(base.autoPlayInterval);
- }
- window.clearTimeout(smallDelay);
- smallDelay = window.setTimeout(function () {
- lastWindowWidth = $(window).width();
- base.updateVars();
- }, base.options.responsiveRefreshRate);
- }
- };
- $(window).resize(base.resizer);
- },
- updatePosition : function () {
- var base = this;
- base.jumpTo(base.currentItem);
- if (base.options.autoPlay !== false) {
- base.checkAp();
- }
- },
- appendItemsSizes : function () {
- var base = this,
- roundPages = 0,
- lastItem = base.itemsAmount - base.options.items;
- base.$owlItems.each(function (index) {
- var $this = $(this);
- $this
- .css({"width": base.itemWidth})
- .data("owl-item", Number(index));
- if (index % base.options.items === 0 || index === lastItem) {
- if (!(index > lastItem)) {
- roundPages += 1;
- }
- }
- $this.data("owl-roundPages", roundPages);
- });
- },
- appendWrapperSizes : function () {
- var base = this,
- width = base.$owlItems.length * base.itemWidth;
- base.$owlWrapper.css({
- "width": width * 2,
- "left": 0
- });
- base.appendItemsSizes();
- },
- calculateAll : function () {
- var base = this;
- base.calculateWidth();
- base.appendWrapperSizes();
- base.loops();
- base.max();
- },
- calculateWidth : function () {
- var base = this;
- base.itemWidth = Math.round(base.$elem.width() / base.options.items);
- },
- max : function () {
- var base = this,
- maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
- if (base.options.items > base.itemsAmount) {
- base.maximumItem = 0;
- maximum = 0;
- base.maximumPixels = 0;
- } else {
- base.maximumItem = base.itemsAmount - base.options.items;
- base.maximumPixels = maximum;
- }
- return maximum;
- },
- min : function () {
- return 0;
- },
- loops : function () {
- var base = this,
- prev = 0,
- elWidth = 0,
- i,
- item,
- roundPageNum;
- base.positionsInArray = [0];
- base.pagesInArray = [];
- for (i = 0; i < base.itemsAmount; i += 1) {
- elWidth += base.itemWidth;
- base.positionsInArray.push(-elWidth);
- if (base.options.scrollPerPage === true) {
- item = $(base.$owlItems[i]);
- roundPageNum = item.data("owl-roundPages");
- if (roundPageNum !== prev) {
- base.pagesInArray[prev] = base.positionsInArray[i];
- prev = roundPageNum;
- }
- }
- }
- },
- buildControls : function () {
- var base = this;
- if (base.options.navigation === true || base.options.pagination === true) {
- base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
- }
- if (base.options.pagination === true) {
- base.buildPagination();
- }
- if (base.options.navigation === true) {
- base.buildButtons();
- }
- },
- buildButtons : function () {
- var base = this,
- buttonsWrapper = $("<div class=\"owl-buttons\"/>");
- base.owlControls.append(buttonsWrapper);
- base.buttonPrev = $("<div/>", {
- "class" : "owl-prev",
- "html" : base.options.navigationText[0] || ""
- });
- base.buttonNext = $("<div/>", {
- "class" : "owl-next",
- "html" : base.options.navigationText[1] || ""
- });
- buttonsWrapper
- .append(base.buttonPrev)
- .append(base.buttonNext);
- buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
- event.preventDefault();
- });
- buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
- event.preventDefault();
- if ($(this).hasClass("owl-next")) {
- base.next();
- } else {
- base.prev();
- }
- });
- },
- buildPagination : function () {
- var base = this;
- base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
- base.owlControls.append(base.paginationWrapper);
- base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
- event.preventDefault();
- if (Number($(this).data("owl-page")) !== base.currentItem) {
- base.goTo(Number($(this).data("owl-page")), true);
- }
- });
- },
- updatePagination : function () {
- var base = this,
- counter,
- lastPage,
- lastItem,
- i,
- paginationButton,
- paginationButtonInner;
- if (base.options.pagination === false) {
- return false;
- }
- base.paginationWrapper.html("");
- counter = 0;
- lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
- for (i = 0; i < base.itemsAmount; i += 1) {
- if (i % base.options.items === 0) {
- counter += 1;
- if (lastPage === i) {
- lastItem = base.itemsAmount - base.options.items;
- }
- paginationButton = $("<div/>", {
- "class" : "owl-page"
- });
- paginationButtonInner = $("<span></span>", {
- "text": base.options.paginationNumbers === true ? counter : "",
- "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
- });
- paginationButton.append(paginationButtonInner);
- paginationButton.data("owl-page", lastPage === i ? lastItem : i);
- paginationButton.data("owl-roundPages", counter);
- base.paginationWrapper.append(paginationButton);
- }
- }
- base.checkPagination();
- },
- checkPagination : function () {
- var base = this;
- if (base.options.pagination === false) {
- return false;
- }
- base.paginationWrapper.find(".owl-page").each(function () {
- if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
- base.paginationWrapper
- .find(".owl-page")
- .removeClass("active");
- $(this).addClass("active");
- }
- });
- },
- checkNavigation : function () {
- var base = this;
- if (base.options.navigation === false) {
- return false;
- }
- if (base.options.rewindNav === false) {
- if (base.currentItem === 0 && base.maximumItem === 0) {
- base.buttonPrev.addClass("disabled");
- base.buttonNext.addClass("disabled");
- } else if (base.currentItem === 0 && base.maximumItem !== 0) {
- base.buttonPrev.addClass("disabled");
- base.buttonNext.removeClass("disabled");
- } else if (base.currentItem === base.maximumItem) {
- base.buttonPrev.removeClass("disabled");
- base.buttonNext.addClass("disabled");
- } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
- base.buttonPrev.removeClass("disabled");
- base.buttonNext.removeClass("disabled");
- }
- }
- },
- updateControls : function () {
- var base = this;
- base.updatePagination();
- base.checkNavigation();
- if (base.owlControls) {
- if (base.options.items >= base.itemsAmount) {
- base.owlControls.hide();
- } else {
- base.owlControls.show();
- }
- }
- },
- destroyControls : function () {
- var base = this;
- if (base.owlControls) {
- base.owlControls.remove();
- }
- },
- next : function (speed) {
- var base = this;
- if (base.isTransition) {
- return false;
- }
- base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
- if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
- if (base.options.rewindNav === true) {
- base.currentItem = 0;
- speed = "rewind";
- } else {
- base.currentItem = base.maximumItem;
- return false;
- }
- }
- base.goTo(base.currentItem, speed);
- },
- prev : function (speed) {
- var base = this;
- if (base.isTransition) {
- return false;
- }
- if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
- base.currentItem = 0;
- } else {
- base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
- }
- if (base.currentItem < 0) {
- if (base.options.rewindNav === true) {
- base.currentItem = base.maximumItem;
- speed = "rewind";
- } else {
- base.currentItem = 0;
- return false;
- }
- }
- base.goTo(base.currentItem, speed);
- },
- goTo : function (position, speed, drag) {
- var base = this,
- goToPixel;
- if (base.isTransition) {
- return false;
- }
- if (typeof base.options.beforeMove === "function") {
- base.options.beforeMove.apply(this, [base.$elem]);
- }
- if (position >= base.maximumItem) {
- position = base.maximumItem;
- } else if (position <= 0) {
- position = 0;
- }
- base.currentItem = base.owl.currentItem = position;
- if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
- base.swapSpeed(0);
- if (base.browser.support3d === true) {
- base.transition3d(base.positionsInArray[position]);
- } else {
- base.css2slide(base.positionsInArray[position], 1);
- }
- base.afterGo();
- base.singleItemTransition();
- return false;
- }
- goToPixel = base.positionsInArray[position];
- if (base.browser.support3d === true) {
- base.isCss3Finish = false;
- if (speed === true) {
- base.swapSpeed("paginationSpeed");
- window.setTimeout(function () {
- base.isCss3Finish = true;
- }, base.options.paginationSpeed);
- } else if (speed === "rewind") {
- base.swapSpeed(base.options.rewindSpeed);
- window.setTimeout(function () {
- base.isCss3Finish = true;
- }, base.options.rewindSpeed);
- } else {
- base.swapSpeed("slideSpeed");
- window.setTimeout(function () {
- base.isCss3Finish = true;
- }, base.options.slideSpeed);
- }
- base.transition3d(goToPixel);
- } else {
- if (speed === true) {
- base.css2slide(goToPixel, base.options.paginationSpeed);
- } else if (speed === "rewind") {
- base.css2slide(goToPixel, base.options.rewindSpeed);
- } else {
- base.css2slide(goToPixel, base.options.slideSpeed);
- }
- }
- base.afterGo();
- },
- jumpTo : function (position) {
- var base = this;
- if (typeof base.options.beforeMove === "function") {
- base.options.beforeMove.apply(this, [base.$elem]);
- }
- if (position >= base.maximumItem || position === -1) {
- position = base.maximumItem;
- } else if (position <= 0) {
- position = 0;
- }
- base.swapSpeed(0);
- if (base.browser.support3d === true) {
- base.transition3d(base.positionsInArray[position]);
- } else {
- base.css2slide(base.positionsInArray[position], 1);
- }
- base.currentItem = base.owl.currentItem = position;
- base.afterGo();
- },
- afterGo : function () {
- var base = this;
- base.prevArr.push(base.currentItem);
- base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
- base.prevArr.shift(0);
- if (base.prevItem !== base.currentItem) {
- base.checkPagination();
- base.checkNavigation();
- base.eachMoveUpdate();
- if (base.options.autoPlay !== false) {
- base.checkAp();
- }
- }
- if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
- base.options.afterMove.apply(this, [base.$elem]);
- }
- },
- stop : function () {
- var base = this;
- base.apStatus = "stop";
- window.clearInterval(base.autoPlayInterval);
- },
- checkAp : function () {
- var base = this;
- if (base.apStatus !== "stop") {
- base.play();
- }
- },
- play : function () {
- var base = this;
- base.apStatus = "play";
- if (base.options.autoPlay === false) {
- return false;
- }
- window.clearInterval(base.autoPlayInterval);
- base.autoPlayInterval = window.setInterval(function () {
- base.next(true);
- }, base.options.autoPlay);
- },
- swapSpeed : function (action) {
- var base = this;
- if (action === "slideSpeed") {
- base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
- } else if (action === "paginationSpeed") {
- base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
- } else if (typeof action !== "string") {
- base.$owlWrapper.css(base.addCssSpeed(action));
- }
- },
- addCssSpeed : function (speed) {
- return {
- "-webkit-transition": "all " + speed + "ms ease",
- "-moz-transition": "all " + speed + "ms ease",
- "-o-transition": "all " + speed + "ms ease",
- "transition": "all " + speed + "ms ease"
- };
- },
- removeTransition : function () {
- return {
- "-webkit-transition": "",
- "-moz-transition": "",
- "-o-transition": "",
- "transition": ""
- };
- },
- doTranslate : function (pixels) {
- return {
- "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
- "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
- "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
- "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
- "transform": "translate3d(" + pixels + "px, 0px,0px)"
- };
- },
- transition3d : function (value) {
- var base = this;
- base.$owlWrapper.css(base.doTranslate(value));
- },
- css2move : function (value) {
- var base = this;
- base.$owlWrapper.css({"left" : value});
- },
- css2slide : function (value, speed) {
- var base = this;
- base.isCssFinish = false;
- base.$owlWrapper.stop(true, true).animate({
- "left" : value
- }, {
- duration : speed || base.options.slideSpeed,
- complete : function () {
- base.isCssFinish = true;
- }
- });
- },
- checkBrowser : function () {
- var base = this,
- translate3D = "translate3d(0px, 0px, 0px)",
- tempElem = document.createElement("div"),
- regex,
- asSupport,
- support3d,
- isTouch;
- tempElem.style.cssText = " -moz-transform:" + translate3D +
- "; -ms-transform:" + translate3D +
- "; -o-transform:" + translate3D +
- "; -webkit-transform:" + translate3D +
- "; transform:" + translate3D;
- regex = /translate3d\(0px, 0px, 0px\)/g;
- asSupport = tempElem.style.cssText.match(regex);
- support3d = (asSupport !== null && asSupport.length === 1);
- isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
- base.browser = {
- "support3d" : support3d,
- "isTouch" : isTouch
- };
- },
- moveEvents : function () {
- var base = this;
- if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
- base.gestures();
- base.disabledEvents();
- }
- },
- eventTypes : function () {
- var base = this,
- types = ["s", "e", "x"];
- base.ev_types = {};
- if (base.options.mouseDrag === true && base.options.touchDrag === true) {
- types = [
- "touchstart.owl mousedown.owl",
- "touchmove.owl mousemove.owl",
- "touchend.owl touchcancel.owl mouseup.owl"
- ];
- } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
- types = [
- "touchstart.owl",
- "touchmove.owl",
- "touchend.owl touchcancel.owl"
- ];
- } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
- types = [
- "mousedown.owl",
- "mousemove.owl",
- "mouseup.owl"
- ];
- }
- base.ev_types.start = types[0];
- base.ev_types.move = types[1];
- base.ev_types.end = types[2];
- },
- disabledEvents : function () {
- var base = this;
- base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
- base.$elem.on("mousedown.disableTextSelect", function (e) {
- return $(e.target).is('input, textarea, select, option');
- });
- },
- gestures : function () {
- /*jslint unparam: true*/
- var base = this,
- locals = {
- offsetX : 0,
- offsetY : 0,
- baseElWidth : 0,
- relativePos : 0,
- position: null,
- minSwipe : null,
- maxSwipe: null,
- sliding : null,
- dargging: null,
- targetElement : null
- };
- base.isCssFinish = true;
- function getTouches(event) {
- if (event.touches !== undefined) {
- return {
- x : event.touches[0].pageX,
- y : event.touches[0].pageY
- };
- }
- if (event.touches === undefined) {
- if (event.pageX !== undefined) {
- return {
- x : event.pageX,
- y : event.pageY
- };
- }
- if (event.pageX === undefined) {
- return {
- x : event.clientX,
- y : event.clientY
- };
- }
- }
- }
- function swapEvents(type) {
- if (type === "on") {
- $(document).on(base.ev_types.move, dragMove);
- $(document).on(base.ev_types.end, dragEnd);
- } else if (type === "off") {
- $(document).off(base.ev_types.move);
- $(document).off(base.ev_types.end);
- }
- }
- function dragStart(event) {
- var ev = event.originalEvent || event || window.event,
- position;
- if (ev.which === 3) {
- return false;
- }
- if (base.itemsAmount <= base.options.items) {
- return;
- }
- if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
- return false;
- }
- if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
- return false;
- }
- if (base.options.autoPlay !== false) {
- window.clearInterval(base.autoPlayInterval);
- }
- if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
- base.$owlWrapper.addClass("grabbing");
- }
- base.newPosX = 0;
- base.newRelativeX = 0;
- $(this).css(base.removeTransition());
- position = $(this).position();
- locals.relativePos = position.left;
- locals.offsetX = getTouches(ev).x - position.left;
- locals.offsetY = getTouches(ev).y - position.top;
- swapEvents("on");
- locals.sliding = false;
- locals.targetElement = ev.target || ev.srcElement;
- }
- function dragMove(event) {
- var ev = event.originalEvent || event || window.event,
- minSwipe,
- maxSwipe;
- base.newPosX = getTouches(ev).x - locals.offsetX;
- base.newPosY = getTouches(ev).y - locals.offsetY;
- base.newRelativeX = base.newPosX - locals.relativePos;
- if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
- locals.dragging = true;
- base.options.startDragging.apply(base, [base.$elem]);
- }
- if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
- if (ev.preventDefault !== undefined) {
- ev.preventDefault();
- } else {
- ev.returnValue = false;
- }
- locals.sliding = true;
- }
- if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
- $(document).off("touchmove.owl");
- }
- minSwipe = function () {
- return base.newRelativeX / 5;
- };
- maxSwipe = function () {
- return base.maximumPixels + base.newRelativeX / 5;
- };
- base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
- if (base.browser.support3d === true) {
- base.transition3d(base.newPosX);
- } else {
- base.css2move(base.newPosX);
- }
- }
- function dragEnd(event) {
- var ev = event.originalEvent || event || window.event,
- newPosition,
- handlers,
- owlStopEvent;
- ev.target = ev.target || ev.srcElement;
- locals.dragging = false;
- if (base.browser.isTouch !== true) {
- base.$owlWrapper.removeClass("grabbing");
- }
- if (base.newRelativeX < 0) {
- base.dragDirection = base.owl.dragDirection = "left";
- } else {
- base.dragDirection = base.owl.dragDirection = "right";
- }
- if (base.newRelativeX !== 0) {
- newPosition = base.getNewPosition();
- base.goTo(newPosition, false, "drag");
- if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
- $(ev.target).on("click.disable", function (ev) {
- ev.stopImmediatePropagation();
- ev.stopPropagation();
- ev.preventDefault();
- $(ev.target).off("click.disable");
- });
- handlers = $._data(ev.target, "events").click;
- owlStopEvent = handlers.pop();
- handlers.splice(0, 0, owlStopEvent);
- }
- }
- swapEvents("off");
- }
- base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
- },
- getNewPosition : function () {
- var base = this,
- newPosition = base.closestItem();
- if (newPosition > base.maximumItem) {
- base.currentItem = base.maximumItem;
- newPosition = base.maximumItem;
- } else if (base.newPosX >= 0) {
- newPosition = 0;
- base.currentItem = 0;
- }
- return newPosition;
- },
- closestItem : function () {
- var base = this,
- array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
- goal = base.newPosX,
- closest = null;
- $.each(array, function (i, v) {
- if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
- closest = v;
- if (base.options.scrollPerPage === true) {
- base.currentItem = $.inArray(closest, base.positionsInArray);
- } else {
- base.currentItem = i;
- }
- } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
- if (base.options.scrollPerPage === true) {
- closest = array[i + 1] || array[array.length - 1];
- base.currentItem = $.inArray(closest, base.positionsInArray);
- } else {
- closest = array[i + 1];
- base.currentItem = i + 1;
- }
- }
- });
- return base.currentItem;
- },
- moveDirection : function () {
- var base = this,
- direction;
- if (base.newRelativeX < 0) {
- direction = "right";
- base.playDirection = "next";
- } else {
- direction = "left";
- base.playDirection = "prev";
- }
- return direction;
- },
- customEvents : function () {
- /*jslint unparam: true*/
- var base = this;
- base.$elem.on("owl.next", function () {
- base.next();
- });
- base.$elem.on("owl.prev", function () {
- base.prev();
- });
- base.$elem.on("owl.play", function (event, speed) {
- base.options.autoPlay = speed;
- base.play();
- base.hoverStatus = "play";
- });
- base.$elem.on("owl.stop", function () {
- base.stop();
- base.hoverStatus = "stop";
- });
- base.$elem.on("owl.goTo", function (event, item) {
- base.goTo(item);
- });
- base.$elem.on("owl.jumpTo", function (event, item) {
- base.jumpTo(item);
- });
- },
- stopOnHover : function () {
- var base = this;
- if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
- base.$elem.on("mouseover", function () {
- base.stop();
- });
- base.$elem.on("mouseout", function () {
- if (base.hoverStatus !== "stop") {
- base.play();
- }
- });
- }
- },
- lazyLoad : function () {
- var base = this,
- i,
- $item,
- itemNumber,
- $lazyImg,
- follow;
- if (base.options.lazyLoad === false) {
- return false;
- }
- for (i = 0; i < base.itemsAmount; i += 1) {
- $item = $(base.$owlItems[i]);
- if ($item.data("owl-loaded") === "loaded") {
- continue;
- }
- itemNumber = $item.data("owl-item");
- $lazyImg = $item.find(".lazyOwl");
- if (typeof $lazyImg.data("src") !== "string") {
- $item.data("owl-loaded", "loaded");
- continue;
- }
- if ($item.data("owl-loaded") === undefined) {
- $lazyImg.hide();
- $item.addClass("loading").data("owl-loaded", "checked");
- }
- if (base.options.lazyFollow === true) {
- follow = itemNumber >= base.currentItem;
- } else {
- follow = true;
- }
- if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
- $lazyImg.each(function() {
- base.lazyPreload($item, $(this));
- });
- }
- }
- },
- lazyPreload : function ($item, $lazyImg) {
- var base = this,
- iterations = 0,
- isBackgroundImg;
- if ($lazyImg.prop("tagName") === "DIV") {
- $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
- isBackgroundImg = true;
- } else {
- $lazyImg[0].src = $lazyImg.data("src");
- }
- function showImage() {
- $item.data("owl-loaded", "loaded").removeClass("loading");
- $lazyImg.removeAttr("data-src");
- if (base.options.lazyEffect === "fade") {
- $lazyImg.fadeIn(400);
- } else {
- $lazyImg.show();
- }
- if (typeof base.options.afterLazyLoad === "function") {
- base.options.afterLazyLoad.apply(this, [base.$elem]);
- }
- }
- function checkLazyImage() {
- iterations += 1;
- if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
- showImage();
- } else if (iterations <= 100) {//if image loads in less than 10 seconds
- window.setTimeout(checkLazyImage, 100);
- } else {
- showImage();
- }
- }
- checkLazyImage();
- },
- autoHeight : function () {
- var base = this,
- $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
- iterations;
- function addHeight() {
- var $currentItem = $(base.$owlItems[base.currentItem]).height();
- base.wrapperOuter.css("height", $currentItem + "px");
- if (!base.wrapperOuter.hasClass("autoHeight")) {
- window.setTimeout(function () {
- base.wrapperOuter.addClass("autoHeight");
- }, 0);
- }
- }
- function checkImage() {
- iterations += 1;
- if (base.completeImg($currentimg.get(0))) {
- addHeight();
- } else if (iterations <= 100) { //if image loads in less than 10 seconds
- window.setTimeout(checkImage, 100);
- } else {
- base.wrapperOuter.css("height", ""); //Else remove height attribute
- }
- }
- if ($currentimg.get(0) !== undefined) {
- iterations = 0;
- checkImage();
- } else {
- addHeight();
- }
- },
- completeImg : function (img) {
- var naturalWidthType;
- if (!img.complete) {
- return false;
- }
- naturalWidthType = typeof img.naturalWidth;
- if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
- return false;
- }
- return true;
- },
- onVisibleItems : function () {
- var base = this,
- i;
- if (base.options.addClassActive === true) {
- base.$owlItems.removeClass("active");
- }
- base.visibleItems = [];
- for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
- base.visibleItems.push(i);
- if (base.options.addClassActive === true) {
- $(base.$owlItems[i]).addClass("active");
- }
- }
- base.owl.visibleItems = base.visibleItems;
- },
- transitionTypes : function (className) {
- var base = this;
- //Currently available: "fade", "backSlide", "goDown", "fadeUp"
- base.outClass = "owl-" + className + "-out";
- base.inClass = "owl-" + className + "-in";
- },
- singleItemTransition : function () {
- var base = this,
- outClass = base.outClass,
- inClass = base.inClass,
- $currentItem = base.$owlItems.eq(base.currentItem),
- $prevItem = base.$owlItems.eq(base.prevItem),
- prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
- origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
- animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
- base.isTransition = true;
- base.$owlWrapper
- .addClass('owl-origin')
- .css({
- "-webkit-transform-origin" : origin + "px",
- "-moz-perspective-origin" : origin + "px",
- "perspective-origin" : origin + "px"
- });
- function transStyles(prevPos) {
- return {
- "position" : "relative",
- "left" : prevPos + "px"
- };
- }
- $prevItem
- .css(transStyles(prevPos, 10))
- .addClass(outClass)
- .on(animEnd, function () {
- base.endPrev = true;
- $prevItem.off(animEnd);
- base.clearTransStyle($prevItem, outClass);
- });
- $currentItem
- .addClass(inClass)
- .on(animEnd, function () {
- base.endCurrent = true;
- $currentItem.off(animEnd);
- base.clearTransStyle($currentItem, inClass);
- });
- },
- clearTransStyle : function (item, classToRemove) {
- var base = this;
- item.css({
- "position" : "",
- "left" : ""
- }).removeClass(classToRemove);
- if (base.endPrev && base.endCurrent) {
- base.$owlWrapper.removeClass('owl-origin');
- base.endPrev = false;
- base.endCurrent = false;
- base.isTransition = false;
- }
- },
- owlStatus : function () {
- var base = this;
- base.owl = {
- "userOptions" : base.userOptions,
- "baseElement" : base.$elem,
- "userItems" : base.$userItems,
- "owlItems" : base.$owlItems,
- "currentItem" : base.currentItem,
- "prevItem" : base.prevItem,
- "visibleItems" : base.visibleItems,
- "isTouch" : base.browser.isTouch,
- "browser" : base.browser,
- "dragDirection" : base.dragDirection
- };
- },
- clearEvents : function () {
- var base = this;
- base.$elem.off(".owl owl mousedown.disableTextSelect");
- $(document).off(".owl owl");
- $(window).off("resize", base.resizer);
- },
- unWrap : function () {
- var base = this;
- if (base.$elem.children().length !== 0) {
- base.$owlWrapper.unwrap();
- base.$userItems.unwrap().unwrap();
- if (base.owlControls) {
- base.owlControls.remove();
- }
- }
- base.clearEvents();
- base.$elem.attr({
- style: base.$elem.data("owl-originalStyles") || "",
- class: base.$elem.data("owl-originalClasses")
- });
- },
- destroy : function () {
- var base = this;
- base.stop();
- window.clearInterval(base.checkVisible);
- base.unWrap();
- base.$elem.removeData();
- },
- reinit : function (newOptions) {
- var base = this,
- options = $.extend({}, base.userOptions, newOptions);
- base.unWrap();
- base.init(options, base.$elem);
- },
- addItem : function (htmlString, targetPosition) {
- var base = this,
- position;
- if (!htmlString) {return false; }
- if (base.$elem.children().length === 0) {
- base.$elem.append(htmlString);
- base.setVars();
- return false;
- }
- base.unWrap();
- if (targetPosition === undefined || targetPosition === -1) {
- position = -1;
- } else {
- position = targetPosition;
- }
- if (position >= base.$userItems.length || position === -1) {
- base.$userItems.eq(-1).after(htmlString);
- } else {
- base.$userItems.eq(position).before(htmlString);
- }
- base.setVars();
- },
- removeItem : function (targetPosition) {
- var base = this,
- position;
- if (base.$elem.children().length === 0) {
- return false;
- }
- if (targetPosition === undefined || targetPosition === -1) {
- position = -1;
- } else {
- position = targetPosition;
- }
- base.unWrap();
- base.$userItems.eq(position).remove();
- base.setVars();
- }
- };
- $.fn.owlCarousel = function (options) {
- return this.each(function () {
- if ($(this).data("owl-init") === true) {
- return false;
- }
- $(this).data("owl-init", true);
- var carousel = Object.create(Carousel);
- carousel.init(options, this);
- $.data(this, "owlCarousel", carousel);
- });
- };
- $.fn.owlCarousel.options = {
- items : 5,
- itemsCustom : false,
- itemsDesktop : [1199, 4],
- itemsDesktopSmall : [979, 3],
- itemsTablet : [768, 2],
- itemsTabletSmall : false,
- itemsMobile : [479, 1],
- singleItem : false,
- itemsScaleUp : false,
- slideSpeed : 200,
- paginationSpeed : 800,
- rewindSpeed : 1000,
- autoPlay : false,
- stopOnHover : false,
- navigation : false,
- navigationText : ["prev", "next"],
- rewindNav : true,
- scrollPerPage : false,
- pagination : true,
- paginationNumbers : false,
- responsive : true,
- responsiveRefreshRate : 200,
- responsiveBaseWidth : window,
- baseClass : "owl-carousel",
- theme : "owl-theme",
- lazyLoad : false,
- lazyFollow : true,
- lazyEffect : "fade",
- autoHeight : false,
- jsonPath : false,
- jsonSuccess : false,
- dragBeforeAnimFinish : true,
- mouseDrag : true,
- touchDrag : true,
- addClassActive : false,
- transitionStyle : false,
- beforeUpdate : false,
- afterUpdate : false,
- beforeInit : false,
- afterInit : false,
- beforeMove : false,
- afterMove : false,
- afterAction : false,
- startDragging : false,
- afterLazyLoad: false
- };
- }(jQuery, window, document));
|