首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slick Slider:构建比较滑块

Slick Slider:构建比较滑块
EN

Stack Overflow用户
提问于 2020-04-28 20:51:44
回答 2查看 163关注 0票数 2

我正在构建一个比较滑块。

我的想法是我有两个滑块彼此相邻,每个滑块中都有相同的项目。

然后,我根据每个滑块所显示的内容来过滤滑块。这样,您可以通过两个滑块查看,而不会看到匹配的项目。

这就是我到目前为止所知道的:

Codepen:https://codepen.io/flinch85/pen/MWaordK

代码语言:javascript
复制
$('.slider-1').slick({
  dots: false,
  arrows: true,
  infinite: true,
  speed: 300,
  slidesToShow: 1,
  slidesToScroll: 1,
  easing: 'ease'
});

$('.slider-2').slick({
  dots: false,
  arrows: true,
  infinite: true,
  speed: 300,
  slidesToShow: 1,
  slidesToScroll: 1,
  easing: 'ease',
  initialSlide: 1
});


 $('.slider-1').on('beforeChange', function () {
     $(this).slick('slickUnfilter');
   var otherIndex =  $('.slider-2 .slick-active').attr('data-slick-index');
   $(this).slick('slickFilter', 'div:not([data-slick-index="'+ otherIndex +'"])');
 });


 $('.slider-2').on('beforeChange', function (event, slick, slides, currentSlide, nextSlide) {
   $(this).slick('slickUnfilter');
   var otherIndex =  $('.slider-1 .slick-active').attr('data-slick-index');
   $(this).slick('slickFilter', 'div:not([data-slick-index="'+ otherIndex +'"])');

 }); 

它是有效的,除了您第一次滑动第二个滑块时,它会滑回到同一个幻灯片。在移动相反的滑块并返回时,它将在第一次移动时重复相同的幻灯片。

我已经尝试将slickUnfilter函数移动到beforeChangeslickFilter to happen afterChange。这是可行的,但会使动画混乱,因为下一项只有在幻灯片发生后才会更改。

EN

回答 2

Stack Overflow用户

发布于 2020-04-28 22:29:19

在beforeChange函数中使用此otherIndex+1

其他索引仍引用当前元素

$('.slider-1').on('beforeChange', function () { $(this).slick('slickUnfilter'); var otherIndex = $('.slider-2 .slick-active').attr('data-slick-index'); $(this).slick('slickFilter', 'div:not([data-slick-index="'+ otherIndex+1 +'"])'); });

https://codepen.io/vkv88/pen/OJygEgK?editors=1010

票数 0
EN

Stack Overflow用户

发布于 2021-12-13 00:31:15

这里我做了两个不同的旋转木马。第一个是“一个图像”轮播,第二个是"3图像视图轮播“。和js代码来“按活动幻灯片”比较它们。

代码语言:javascript
复制
<div class="left-side-sec-lnd-child" id="pc-only-slide">
  <!--Main slider with only ONE main viewed image as active-->
  <!--START------------------------------>
  <div class="slider slider-single">
    <div class="slick-slide"><img data-lazy="img/slide-one.jpg" alt="" ></div>
    <div class="slick-slide"><img data-lazy="img/slide-two.jpg" alt="" ></div>
    <div class="slick-slide"><img data-lazy="img/slide-three.jpg" alt="" ></div>
  </div>
  <!--END==============================-->
</div>
<div class="right-side-sec-lnd-child">
  <div class="inside-bot-sec-lnd"style="width:100%;">
    <p class="sec-lnd-b-header">A journey not to be<br>forgotten</p>
    <!--NAV slider as child with amount of small images-->
    <!--START------------------------------>
    <div class="variable-width slider-nav" style="width:100%;">
       <div class="slick-slide"><img data-lazy="img/slide-one.jpg" alt="" ></div>
       <div class="slick-slide"><img data-lazy="img/slide-two.jpg" alt="" ></div>
       <div class="slick-slide"><img data-lazy="img/slide-three.jpg" alt="" ></div>
    </div>
  <!--END==============================-->
  </div>
 </div>

 //General carousel - big image view
  $('.slider-single').slick({
     slidesToShow: 1,
     slidesToScroll: 1,
     arrows: false,
     fade: true,
     asNavFor: '.slider-nav'
  });
  //This is for carousel what is working as nav for general carousel
  $('.variable-width').slick({
     slidesToShow: 1,
     slidesToScroll: 1,
     asNavFor: '.slider-single',
     dots: false,
     centerMode: true,
     focusOnSelect: true,
     variableWidth: true
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61480621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档