【问题标题】:How to make Swiper JS display faction pagination and progress bar at the same time?如何让Swiper JS同时显示派系分页和进度条?
【发布时间】:2021-07-13 18:31:05
【问题描述】:

如何使带有进度条的进度条和幻灯片总数中活动幻灯片的数字显示同时显示?

由于默认情况下进度条和分数分页的同时操作是不可能的,所以我在“分页”属性中添加了“type:'progressbar'”,并为幻灯片的数字显示做了一个.image-我在其中放置了所有元素的 slider__fraction 块。 然后我写了在网上找到的java脚本代码,但是报错“Uncaught ReferenceError: myImageSLider is not defined”。为什么?

网站 ilyin1ib.beget.tech

代码https://jsfiddle.net/qav8z7f3/

let mySliderAllSlides = document.querySelector('.image-slider__total');
    let mySliderCurrentSlide = document.querySelector('.image-slider__current');
 
    mySliderAllSlides.innerHTML = myImageSLider.slides.length;
 
    myImageSLider.on('slideChange',  function() {
        let currentSlide = ++myImageSLider.realIndex;
        mySliderCurrentSlide.innerHTML = currentSlide;
    });
<div class="image-slider__fraction">
                        <div class="image-slider__current">1</div>
                        <div class="image-slider__sepparator">/</div>
                        <div class="image-slider__total">1</div>
</div>

【问题讨论】:

    标签: javascript html jquery css swiper.js


    【解决方案1】:

    使用 slideChange event。该脚本没有给出实际的项目数,因为您使用了滑块内的循环。这就是为什么我在创建滑块脚本之前找到了项目的值。

    var totalSlide = $('.image-slider .swiper-slide').length;
    const swiper = new Swiper('.image-slider', {
      // Optional parameters
      slidesPerView: 3,
      spaceBetween: 30,
      centeredSlides: true,
      loop: true,
      loopedSLides: 3,
      simulateTouch: true,
      grabCursor: true,
      speed: 800,
      pagination: {
        el: '.swiper-pagination',
        type: 'progressbar'
      },
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
      autoplay: {
        delay: 1000,
      }
    });
    //var count = $('.image-slider .image-slider__slide').length;
    
    
    swiper.on('slideChange', function() {
      var fragment = document.querySelector('.image-slider__current');
      var current = swiper.realIndex + 1;
      if (current > totalSlide)
        current = 1;
      var idx = current < 10 ? ("0" + current) : current;
      var tdx = totalSlide < 10 ? ("0" + totalSlide) : totalSlide;
      fragment.innerHTML = (idx + '/' + tdx);
    });
    

    jsfiddle中的演示

    【讨论】:

    • 由于某种原因,我显示了更多幻灯片,并且只有 4 张,应该显示 1/4, 2/4, 3/4 和 4/4 。我附上了一个带有图片的链接ibb.co/8Y8cJKj
    • 我不明白你的意思。您必须正确配置滑块。
    • 什么不清楚?当我插入您的代码时,在我的分数分页中,显示的幻灯片数量比实际显示的多,即 6/10 等。关于设置 - Swiper JS 配置正确
    • 是的,它可以工作,但是出现了另一个问题:当幻灯片以相反的顺序滑动时,由于某种原因,分页中第三张幻灯片显示为 1 或 2,与其他幻灯片相同幻灯片。在我附上的图片中,这张幻灯片是第一张,向后滚动时显示为 3。ltdfoto.ru/image/EOHVFG
    • 我修改了代码。我用了 swiper.realIndex 它工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多