Owl-Carousel2-设置点数

时间:2018-11-16 10:48:05

标签: javascript jquery owl-carousel owl-carousel-2

我需要在猫头鹰轮播中设置自定义点。我在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
      }
    }
  });
});

但是使用此代码没有任何反应,仅显示未定义的点。甚至可以制作这样的自定义点?

3 个答案:

答案 0 :(得分:3)

像这样更改以下代码:

$(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
      }
    }
  });
});

在您的猫头鹰项目中添加点数据:

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

答案 1 :(得分:2)

因此,在查看the documentation时,dotsData选项采用一个布尔值,该布尔值仅告诉Owl Carousel为显示点的每个项目寻找data-dot属性。因此,在JS中配置轮播时,您的自定义标记需要进入HTML,而不是作为字符串传递。

如果选中此小提琴,则可以看到JS选项与HTML数据属性如何相关:https://jsfiddle.net/4xymnwey/

HTML

<ul class="owl-carousel owl-theme">
  <li class="carousel-slot" data-dot="<p>text 1</p>">slide 1</li>
  <li class="carousel-slot" data-dot="<p>text 2</p>">slide 2</li>
  <li class="carousel-slot" data-dot="<p>text 3</p>">slide 3</li>
</ul>

JS

$(".owl-carousel").owlCarousel({
  items: 1,
  dots: true,
  dotsData: true
});

请在GitHub上this issue comment处获得答案。希望对您有所帮助:)

答案 2 :(得分:0)

如果没有任何帮助。 尝试手动实现。 这是示例:-

Owl-carousel自动生成的HTML

<div class="owl-controls">
    <div class="owl-pagination">
        <div class="owl-page"><span class=""></span></div>
        <div class="owl-page"><span class=""></span></div>
        <div class="owl-page active"><span class=""></span></div>
        <div class="owl-page"><span class=""></span></div>
        <div class="owl-page"><span class=""></span></div>
        <div class="owl-page"><span class=""></span></div>
    </div>
</div> 

它将由Owl carousel自动生成。 选择其父ID /类,然后使用javascript或jquery更改内容。这完全取决于您。 这是示例:-

JavaScript

 var dots = document.querySelectorAll("#testomonial .owl-pagination .owl-page");
        let i=1;
        dots.forEach((elem)=>{
            elem.innerHTML = i;
            i++;
})