Slick Slider adaptiveHeight 使通过 asNavFor 连接的滑块去同步

Slick Slider adaptiveHeight desynchronizes sliders connected via asNavFor

我有三个 Slick 滑块,其中一个滑块看起来像浏览器选项卡,而另外两个滑块在下方并通过单击选项卡进行更改。这在 asNavFor 的帮助下非常有效。有时底部滑块的幻灯片内容会发生变化。这有时会在滑块和它下面的元素之间产生空白。

我尝试将 adaptiveHeight: true 添加到底部滑块。现在高度适应内容并且空白消失了。但是现在滑块不再同步了。首先单击 Next 将底部滑块移动一张幻灯片,但不会移动选项卡滑块。再次单击“下一步”会移动选项卡滑块,但不会移动顶部滑块。

有人知道为什么会发生这种情况或我该如何解决这个问题吗?

这是我的滑块代码:

$('.phase--top').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: false,
      // adaptiveHeight: true,
      fade: true,
      asNavFor: '.phase--tabs, .phase--tipp'
    });
    $('.phase--tipp').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      // adaptiveHeight: true,
      arrows: false,
      fade: true,
      asNavFor: '.phase--tabs, .phase--top'
    });
    $('.phase--tabs').slick({
      slidesToShow: 3,
      slidesToScroll: 1,
      asNavFor: '.phase--tipp, .phase--top',
      dots: false,
      centerMode: false,
      prevArrow: "<button type='button' class='slick-prev pull-left'></button>",
      nextArrow:"<button type='button' class='slick-next pull-right'></button>",
      focusOnSelect: true,
      responsive: [
        {
          breakpoint: 1050,
          settings: {
            slidesToShow: 2
          }
        },
        {
          breakpoint: 700,
          settings: {
            slidesToShow: 1
          }
        }
      ]
    });

编辑: 第一次单击时,我在控制台中收到此错误代码:

Uncaught TypeError: i.$list.animate is not a function

编辑 2: 我使用 jquery 版本 3.5.1 和 Slick Slider 版本 1.8.1.

这里还有我的 HTML:

的标记
<div class="phase--outer">
    <div class="phase--tabs">
            <div class="phase--title"> 
                <img class="phase--icon" src="phase_icon">
                <img class="phase--iconb" src="phase_iconb">
                TITLE
            </div>
            <div class="phase--title"> 
                <img class="phase--icon" src="phase_icon">
                <img class="phase--iconb" src="phase_iconb">
                TITLE
            </div>
            <div class="phase--title"> 
                <img class="phase--icon" src="phase_icon">
                <img class="phase--iconb" src="phase_iconb">
                TITLE
            </div>
    </div>
    <div class="phase--top">
            <div class="phase--text"> 
                TEXT 
            </div>
    </div>
    <div class="phase--tipp">
            <div class="phase--tipptext"> 
                <img class="phase--tippicon" src="icon_bulb">TIPP:
                <div class="phase--tipp-text">TIPPTEXT</div>
            </div>
    </div>
</div>

老实说,我从未尝试过这个特定的设置,但总是将 adaptiveHeightfade 一起使用(就像你所做的那样) 箭头显示在大滑块上,而不是小滑块上。我可以想象带有箭头的 multi-slide 滑块和带有 adaptiveHeight 的 single-slide 滑块之间的一些奇怪的碰撞或不兼容问题。

关于您的设置的一些问题:

  1. 您使用哪个版本的 Slick?
  2. 您使用哪个版本的jQuery?
  3. 您是直接将图像用作幻灯片还是将它们包裹在其他元素中?

第三个问题是因为目前的Slick版本(1.8.1)在直接使用<img />作为幻灯片时存在问题。在那种情况下,slidesToScroll 属性 无法正常工作,并且表现为 slidesToShow 的倍数。此外,infinite 属性 在这种情况下也不起作用。

我创建了一个 Pen Slick Slider - Multiple Synced,它似乎可以正常工作。我希望这至少能有所帮助。