简体   繁体   English

显示幻灯片编号orbit.js基础6 zurb

[英]display slide number orbit.js foundation 6 zurb

I am currently working with orbit.js slider in Foundation 6 and not seeing an option to display slide number. 我目前正在使用Foundation 6中的orbit.js滑块,而没有看到显示幻灯片编号的选项。

Could you advice me on this or share examples please. 你能就此提出建议或分享一些例子吗?

Thanks! 谢谢!

Here's an example using jQuery that will change the innerHTML propery of an element with the class .slide-number to the active slide number, and log the active slide number to the console every time the slide changes. 下面是一个使用jQuery的示例,它将使用类.slide-number将元素的innerHTML属性.slide-number为活动幻灯片编号,并在每次幻灯片更改时将活动幻灯片编号记录到控制台。

function slideNumber() {
  var $slides = $('.orbit-slide');
  var $activeSlide = $slides.filter('.is-active');
  var activeNum = $slides.index($activeSlide) + 1;
  $('.slide-number').innerHTML = activeNum;
  console.log(activeNum);
}

$('[data-orbit]').on('slidechange.zf.orbit', slideNumber);

Credit: I came up with this answer with the help of this SO post . 信用:我在这篇SO帖子的帮助下想出了这个答案。

You can achive this with plain CSS. 您可以使用纯CSS来实现这一点。

.orbit-parent {
    counter-reset: orbit-bullet-num;
}

.orbit-bullets button::after {
    content: counter(orbit-bullet-num);
    counter-increment: orbit-bullet-num;
}
 <div class="orbit-parent">
     <div class="orbit" aria-label="Slider" data-orbit>
         <ul class="orbit-container">
         ...
         ...
         </ul>
         <nav class="orbit-bullets" aria-label="Slider Navigation">
            <button data-slide="0" class=""><span class="show-for-sr">First slide details.</span></button>
            <button data-slide="1" class=""><span class="show-for-sr">Second slide details.</span></button>
            <button data-slide="2" class="is-active"><span class="show-for-sr">Third slide details.</span><span class="show-for-sr">Current Slide</span></button>
        </nav>
    </div>
</div>

This is full jQuery code to properly working. 这是正确工作的完整jQuery代码。 Also add css class "orbit-slide-number" where you want to show this on the page 还要在页面上添加css类“orbit-slide-number”

function slideNumber() {
    var $slides = $('.orbit-slide');
    var totalItems = $('.orbit-container li').length;
    var $activeSlide = $slides.filter('.is-active');
    var activeNum = $slides.index($activeSlide) + 1;

    $('.orbit-slide-number').html(''+activeNum+'/'+totalItems+'');
}

slideNumber(); // call for every

// call for automatic slide change
$('[data-orbit]').on('slidechange.zf.orbit', slideNumber);

For those of you who might want to use vanilla js: 对于那些可能想要使用香草js的人:

function slideNumbers() {
  const arrows = document.getElementsByClassName("orbit-arrow");
  const target = document.getElementById("currentSlide");
  [...arrows].forEach(function(arrow) {
    arrow.addEventListener("click", function() {
      const currentSlide = document.querySelector(".is-active");
      target.textContent = Number(currentSlide.getAttribute("data-slide")) + 1;
    });
  });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM