2016-01-27 2 views
0

Когда вы нажимаете на карусель img, вы заметите, что он переместится в центр в окне просмотра. Тем не менее, я также хочу, чтобы это произошло, когда вы нажимаете .owl-thumb-items (пронумерованная кнопка). Я попытался добавить класс большого пальца к скрипту следующим образом: $('.owl-carousel, .owl-thumb-item'). Но это явно не сработало.Невозможно получить кнопку, чтобы центрировать div с помощью JQuery

$('.owl-carousel, .owl-thumb-item').on('click', function(e) { 

    var el = $(".lazyOwl", this); 
    var elOffset = el.offset().top; 
    var elHeight = el.height(); 
    var windowHeight = $(window).height(); 
    var offset; 

    if (elHeight < windowHeight) { 
    offset = elOffset - ((windowHeight/2) - (elHeight/2)); 
    } 
    else { 
    offset = elOffset; 
    } 
    var speed = 700; 
    $('html, body').animate({scrollTop:offset}, speed); 
}); 

var animations = new Array(); 
// queue all 
$(".owl-thumb-item").each(function() { 
    animations.push($(this)); 
}); 

// start animating 
doAnimation(animations.shift()); 

function doAnimation(image) { 
    image.fadeIn("slow", function() { 
    // wait until animation is done and recurse if there are more animations 
    if (animations.length > 0) doAnimation(animations.shift()); 
    }); 
} 

http://jsfiddle.net/8bJUc/660/

ответ

1

Для кнопок, ваш сценарий будет искать для элемента с классом «lazyOwl» внутри самой кнопки. Вот исправление, который просто ссылается на «lazyOwl» с каруселью:

var el = $('.owl-carousel .lazyOwl'); 
$('.owl-carousel, .owl-thumb-item').on('click', function(e) { 

    // var el = $(".lazyOwl", this); 
    var elOffset = el.offset().top; 
    ... 

Fiddle

+0

Я просто заметил, что если нажать на любой из каруселей после первой, она будет прокручиваться назад и центр до первой карусели, а не в настоящее время. Пожалуйста, попробуйте (imdarrien.com). – user2252219

+0

С помощью нескольких элементов вышеуказанный код не будет работать. Ваш селектор должен быть для родителя, который является общим как между карусели, так и с большими пальцами, а затем оттуда найдите конкретный элемент lazyOwl, который вы ищете. Глядя на ваш сайт, у вас есть div # 2 через div # 5, но нет div # 1. Если вы добавите div # 1, вы можете добавить общий класс, например «owlWrapper», между всеми этими div и затем использовать следующее для поиска совы в обработчике кликов: var el = $ ('. LazyOwl', $ (это) .closest ('div.owlWrapper')); –

+1

[Fiddle] (http://jsfiddle.net/tschettler/8bJUc/664/) –

Смежные вопросы