【问题标题】:Slick Slider - How to Remove Specific Slides On ClickSlick Slider - 如何在点击时删除特定的幻灯片
【发布时间】:2018-05-14 12:27:32
【问题描述】:

我正在尝试向光滑的滑块添加功能,当您单击幻灯片时,它会将其从滑块中移除。

我查看了Slick Sliders 网站上的文档,它显示了如何添加/删除幻灯片,但这仅适用于滑块中的最后一张幻灯片。

我正在尝试使其工作,以便您可以根据单击的幻灯片删除特定幻灯片。

<div class="slider add-remove slick-initialized slick-slider">
    <div aria-live="polite" class="slick-list draggable">
        <div class="slick-track" style="opacity: 1; width: 80px; transform: translate3d(0px, 0px, 0px);" role="listbox">
            <div class="slick-slide slick-current slick-active" data-slick-index="0" aria-hidden="false" style="width: 80px;" tabindex="-1" role="option" aria-describedby="slick-slide100">
                <h3>1</h3>
            </div>
        </div>
    </div>
</div>

<a href="javascript:void(0)" class="button js-remove-slide">Remove Slide</a>
$('.js-remove-slide').on('click', function() {
  $('.add-remove').slick('slickRemove',slideIndex - 1);
  if (slideIndex !== 0){
    slideIndex--;
  }
});

编辑:我添加了更多代码来显示它是如何为Slick slider HERE 设置的,这是为了删除滑块中的最后一张幻灯片。

我正在尝试对其进行设置,以便在单击幻灯片上的删除按钮时,该幻灯片将从滑块中删除。我从 Slick Slider 网站上抓取的 sn-p 只删除了滑块中的最后一张幻灯片。所以我想弄清楚如何在点击时删除特定的幻灯片。

【问题讨论】:

  • 可以发完整的html代码或者截图吗?
  • @TAHASULTANTEMURI 我添加了在 slick sliders 网站上找到的 html 代码,说明他们如何设置它以删除最后一张幻灯片。我还添加了我的项目的屏幕截图以显示我正在尝试做的事情。
  • 意思是要去掉“Fade”区域?
  • @TAHASULTANTEMURI 不确定“淡出”区域是什么意思?如果您查看屏幕截图,滑块中的每张幻灯片上都有一个删除按钮。我想要做的是单击该幻灯片时应从滑块中删除。 Slick Slider 网站上的示例正在做的是使用滑块外部的按钮,并且仅删除该滑块中的最后一张幻灯片,而不是像我需要它那样的特定幻灯片。试图弄清楚如何修改光滑的滑块 sn-p 以使用我需要的这个项目的功能。很抱歉,如果不清楚,如果您有任何其他问题,请告诉我!
  • 你的问题分散了,能不能尽量减少额外的代码?

标签: javascript jquery slider slick.js


【解决方案1】:

Here 是您的解决方案的 CodePen

console.clear();

$('.slider').slick({
  dots: true
});

$('.slide').on('click', function() {
  $('.slider').slick('slickRemove', $('.slick-slide').index(this) - 1);
});
html,
body {
  background: #102131;
  text-align: center;
}

.slider {
  width: 400px;
  margin: 20px auto;
  padding: 20px;
  color: white;
}

.slider img {
  display: block;
  margin: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick.min.js"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css">

<div class="slider">
  <div class="slide">
    <img src="http://fillmurray.com/300/300" alt="" class="img-responsive" />
    <h1>slide 1</h1>
  </div>
  <div class="slide">
    <img src="http://fillmurray.com/300/300" alt="" class="img-responsive" />
    <h1>slide 2</h1>
  </div>
  <div class="slide">
    <img src="http://fillmurray.com/300/300" alt="" class="img-responsive" />
    <h1>slide 3</h1>
  </div>
  <div class="slide">
    <img src="http://fillmurray.com/300/300" alt="" class="img-responsive" />
    <h1>slide 4</h1>
  </div>
  <div class="slide">
    <img src="http://fillmurray.com/300/300" alt="" class="img-responsive" />
    <h1>slide 5</h1>
  </div>
</div>

【讨论】:

  • 这正是我想要的。谢谢您的帮助!喜欢你选择使用的图像哈哈
  • 另一种获取当前索引的方法是:$('.slick-slide').index($('.slick-current'))
【解决方案2】:
$('.slick-slide').on('click', function() {
   var $indexid = $(this).attr("data-slick-index");
  $('.slick-slider').slick('slickRemove', $indexid);
});    

【讨论】:

【解决方案3】:

其实很简单

$( document ).on( 'click', '.slick-slider .delete', {}, function() {
    $( this ).closest( '.slick-slide' ).remove();
} );

【讨论】:

    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多