2016-10-18 3 views

ответ

3

DEMO:

http://plnkr.co/edit/t9URfKq9Mwh9jO705h7u?p=preview

Сова карусельного добавляет класс активного ко всем видимые элементы. Итак, как вы можете видеть, я написал сценарий ниже, чтобы пропустить все элементы сова с активным классом, а затем использовать 0-й и последний индекс, я добавляю два разных класса.

Используйте код в своем проекте, и вы получите классы.

jQuery(document).ready(function($) { 

    var carousel = $(".latest-work-carousel"); 
    carousel.owlCarousel({ 
     loop : true, 
     items : 3, 
     margin:0, 
     nav : true, 
     dots : false, 
    }); 

    checkClasses(); 
    carousel.on('translated.owl.carousel', function(event) { 
     checkClasses(); 
    }); 

    function checkClasses(){ 
     var total = $('.latest-work-carousel .owl-stage .owl-item.active').length; 

     $('.latest-work-carousel .owl-stage .owl-item').removeClass('firstActiveItem lastActiveItem'); 

     $('.latest-work-carousel .owl-stage .owl-item.active').each(function(index){ 
      if (index === 0) { 
       // this is the first one 
       $(this).addClass('firstActiveItem'); 
      } 
      if (index === total - 1 && total>1) { 
       // this is the last one 
       $(this).addClass('lastActiveItem'); 
      } 
     }); 
    } 


}); 

DEMO:

http://plnkr.co/edit/t9URfKq9Mwh9jO705h7u?p=preview

+0

Вы можете предоставить демонстрационную версию jsfiddle? –

+0

Я сделал демоверсию. –

+0

ваш код работает нормально, но в моем случае я хочу, чтобы он оставался на первом и последнем активных элементах даже после прокрутки слайдера. например, когда вы нажимаете на следующую кнопку, изменяется первый и последний элемент? Мне нужно, чтобы наши классы все еще были на видимых элементах. –

0

я была такая же проблема с укладкой последнего активного элемента и не мог найти где-нибудь для легко исправить. Наконец придумал исправление, которое работает для меня.

Вот простое исправление, которое сработало для меня.

$('.owl-carousel') 
    .on('changed.owl.carousel initialized.owl.carousel', function(event) { 
    $(event.target) 
     .find('.owl-item').removeClass('last') 
     .eq(event.item.index + event.page.size - 1).addClass('last'); 
    }).owlCarousel({ 
    responsive: { 
     0: { 
     items: 3, 
     }, 
     768: { 
     items: 4, 
     }, 
    } 
    }); 

Первый элемент может быть легким в стиле, используя css.

.owl-item:not(.active) + .owl-item.active{ 
    background: red; 
}