/** * Creating a slider * **/ var $ = jQuery.noConflict(); $(function(){ var pos = 0; var prev = 0; var next = 0; var hidden = 0; $('.slide-prev').on('click', function(){ // console.log($(this).parent().find('.slide')); slide($(this).parent().find('.slides'), 0); }); $('.slide-next').on('click', function(){ // console.log($(this).parent().find('.slide')); slide($(this).parent().find('.slides'), 1); }); var getClilds = function(parent){ // console.log(parent.children()); // console.log(parent.children().length); return parent.children().length; } var slide = function (parent, step){ var totalItms = getClilds(parent); var parentWidth = parent.parent().outerWidth(); var sliderWidth = parent.width(); var itemWidth = parseInt(parent.children().first().width()); itemWidth = itemWidth + parseInt(parent.children().first().css('margin-left')) + parseInt(parent.children().first().css('margin-right')) + parseInt(parent.children().first().css('padding-left')) + parseInt(parent.children().first().css('padding-right')); pos = parseInt(parent.css('left')); if(pos == 0 || isNaN(pos)){ prev = 0 ; }else{ prev = Math.abs(Math.round(pos / itemWidth)); } var showing = Math.round(parentWidth / itemWidth); hidden = (totalItms - showing); console.log(itemWidth); console.log(prev); // if(sliderWidth > ((pos*-1) + (itemWidth*showing)) && pos <= 0){ if(prev <= hidden-1 && step == 1){ ++prev; // pos = pos - itemWid }else if(prev > 0 && 0===step){ --prev; // pos = pos + itemWidth; } pos = prev * itemWidth; pos = pos * -1; console.log(pos); parent.css('left', pos+'px'); } }); // slider script $(document).ready(function() { var bigimage = $("#big"); var thumbs = $("#thumbs"); //var totalslides = 10; var syncedSecondary = true; bigimage .owlCarousel({ items: 1, slideSpeed: 4000, nav: true, autoplay: true, dots: false, loop: true, responsiveRefreshRate: 200, navText: [ '', '' ] }) .on("changed.owl.carousel", syncPosition); thumbs .on("initialized.owl.carousel", function() { thumbs .find(".owl-item") .eq(0) .addClass("current"); }) .owlCarousel({ items: 5, dots: false, nav: true, navText: [ '', '' ], smartSpeed: 200, slideSpeed: 500, slideBy: 5, responsiveRefreshRate: 100 }) .on("changed.owl.carousel", syncPosition2); function syncPosition(el) { //to disable loop, comment this block var count = el.item.count - 1; var current = Math.round(el.item.index - el.item.count / 2 - 0.5); if (current < 0) { current = count; } if (current > count) { current = 0; } //to this thumbs .find(".owl-item") .removeClass("current") .eq(current) .addClass("current"); var onscreen = thumbs.find(".owl-item.active").length - 1; var start = thumbs .find(".owl-item.active") .first() .index(); var end = thumbs .find(".owl-item.active") .last() .index(); if (current > end) { thumbs.data("owl.carousel").to(current, 100, true); } if (current < start) { thumbs.data("owl.carousel").to(current - onscreen, 100, true); } } function syncPosition2(el) { if (syncedSecondary) { var number = el.item.index; bigimage.data("owl.carousel").to(number, 100, true); } } thumbs.on("click", ".owl-item", function(e) { e.preventDefault(); var number = $(this).index(); bigimage.data("owl.carousel").to(number, 300, true); }); });