代码之家  ›  专栏  ›  技术社区  ›  Ihor Tkachuk

滑动滑块的自定义下一步按钮

  •  2
  • Ihor Tkachuk  · 技术社区  · 8 年前

    我在页面上有两个相同的滑块,但它们可能更多。我需要做一个定制按钮 Next 对于每个滑块。我尝试这样做:

    HTML格式

    <div class="slider-wrap">
        <div class="slider">
            <div class="slider-item">Slide 1</div>
            <div class="slider-item">Slide 2</div>
            <div class="slider-item">Slide 3</div>
        </div>
        <button id="next">Next ></button>
    </div>
    
    <div class="slider-wrap">
        <div class="slider">
            <div class="slider-item">Slide 1</div>
            <div class="slider-item">Slide 2</div>
            <div class="slider-item">Slide 3</div>
        </div>
        <button id="next">Next ></button>
    </div>
    

    jQuery(jQuery)

    $('.slider').slick({
        dots: true,
        nextArrow: $('#next')
    });
    

    演示: http://codepen.io/fabric/pen/bwprxJ

    更新: 第二个演示: http://codepen.io/fabric/pen/KgzZVz

    3 回复  |  直到 8 年前
        1
  •  6
  •   madalinivascu    8 年前

    向每个滑块添加唯一的ids+class;航行

    $('.slider').slick({
      dots: true,
      nextArrow: $('#next')
    });
    $('.slider2').slick({
      dots: true,
      nextArrow: $('#next2')
    });
    

    http://codepen.io/anon/pen/QKNxNj

    对于第二个示例,您将导航id更改为类

    $('.slider').slick({
      dots: true
    });
    
    $('.next').click(function(){
      $(this).prev().slick('slickNext');
    });
    

    http://codepen.io/anon/pen/vXGAxb

        2
  •  2
  •   NominalAeon    8 年前

    一个更优雅的解决方案可能是触发类名,然后为该类的每个实例创建nextArrow事件。

    $('.slider-wrap').each(function (index, sliderWrap) {
        var $slider = $(sliderWrap).find('.slider');
        var $next = $(sliderWrap).find('.next');
        $slider.slick({
            dots: true,
            nextArrow: $next
        });
    });
    

    并将按钮id更改为类。这还有一个额外的好处,即为单个页面上的可变数量滑块提供了一个可复制/粘贴的模板,而无需每次创建唯一的id。

    *编辑:工作解决方案 http://codepen.io/nominalaeon/pen/gwAdjd

        3
  •  1
  •   Pranesh Ravi    8 年前

    您应该使用唯一的 ids 为了这个

    $('#slider1').slick({
     dots: true,
     nextArrow: $('#next1')
    });
    $('#slider2').slick({
     dots: true,
     nextArrow: $('#next2')
    });
    

    http://codepen.io/pranesh-r/pen/qakKNY