Search code examples
javascriptjqueryowl-carouselowl-carousel-2

Owl-Carousel2 - set dotsData


I need to set custom dots in owl carousel. I have this code in JS:

$(document).ready(function() {
  $('#header-slider').owlCarousel({
    loop: true,
    autoplay: true,
    autoplayTimeout: 2300,
    pagination: false,
    navigation: true,
    navText: [$('.am-next'), $('.am-prev')],
    navigation: true,
    margin: 0,
    dotsData: ["<button role='button' class='owl-dot'></button><svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16' height='16' viewbox='0 0 250 250' enable-background='new 0 0 426.667 410' xml:space='preserve'><path class='loader' transform='translate(125, 125) scale(.84)'></svg>"],
    responsive: {
      0: {
        items: 1
      },
      600: {
        items: 1
      },
      1000: {
        items: 1,
        nav: false
      },
      1200: {
        items: 1,
        nav: false
      }
    }
  });
});

But with this code nothing happend, just undefined dots are displayed. Is even possible to make custom dots like this?


Solution

  • Change the following code like this:

    $(document).ready(function() {
      $('#header-slider').owlCarousel({
        loop: true,
        autoplay: true,
        autoplayTimeout: 2300,
        pagination: false,
        navigation: true,
        navText: [$('.am-next'), $('.am-prev')],
        navigation: true,
        margin: 0,
        dotData: true,
        dotsData: true
        responsive: {
          0: {
            items: 1
          },
          600: {
            items: 1
          },
          1000: {
            items: 1,
            nav: false
          },
          1200: {
            items: 1,
            nav: false
          }
        }
      });
    });
    

    Add your dots data in your owl-item:

      <div class="item" data-dot="<button role='button' class='owl-dot'></button>">
         <!-- Your Image -->
      </div>