Slick.js:滑动滑块未正确拖动(快速回到第一张幻灯片)

Posted

技术标签:

【中文标题】Slick.js:滑动滑块未正确拖动(快速回到第一张幻灯片)【英文标题】:Slick.js: Slick slider not dragging properly (snapping back to first slide) 【发布时间】:2019-01-29 18:13:28 【问题描述】:

问题

我正在一个 Wordpress 网站上设置一个光滑的滑块/轮播。一切正常/显示完美,但滑块已停止正确拖动。

我仍然可以用鼠标物理拖动滑块,它会按原样进行动画处理,但是当我放开滑块时,它只会弹回第一张幻灯片,并且永远不会让我通过拖动从第一张幻灯片向后或向前导航

使用 prev 和 next 箭头可以完美地工作,使用键盘上的箭头键也是如此,这让我更加困惑为什么拖动不起作用。

我需要什么

修复了拖动无法正常工作的问题,以便我可以正确浏览滑块。

**当我在移动设备上滑动滑块时,滑块也会以相同的方式损坏。

我的代码

我目前无法将您链接到滑块,因为它位于私人网站上,但我会尝试将所有我认为相关的代码放在下面:

(我使用的 slick.min.js 文件和 slick.css 文件仅来自下载)

HTML

<div class="slider">
    <div class="slider__item">
        <a href="">
        </a>
    </div>
</div>
有多个 slider__item,但它们是在帖子的 WP 循环中创建的,所以我只包含了一个 省略幻灯片中的内容,以便这篇文章不会太长,但想象一下 &lt;p&gt;&lt;div&gt; 标记文本/标题/图像等...

JS

$('.slider').slick(
    infinite: true,
    slidesToScroll: 1,
    variableWidth: true,
    dots: false,
    arrows: true,
    focusOnSelect: false,
    prevArrow: $('.home-posts__arrow__prev'),
    nextArrow: $('.home-posts__arrow__next'),
);

CSS

.slider 
    position: absolute;
    left: calc(33.333333% + 30px);


.slider__item 
    max-width: 290px;
    margin: 0px 15px;

参考图片

滑块位于内容的右侧,“Test post 4”是它始终快速返回的第一张幻灯片。蓝色方块是 temp prev 和 next 按钮

我希望这是足够的信息,但如果您需要其他任何内容,请发表评论,提前谢谢!

【问题讨论】:

【参考方案1】:

这是一个老问题,但我遇到了同样的问题。使用 Slick 滑块拖动幻灯片不起作用,幻灯片会弹回第一张幻灯片。我的解决方法是将touchThreshold 设置为更高的数字。

来自文档:

touchThreshold:要推进幻灯片,用户必须滑动 (1/touchThreshold) * 滑块宽度的长度。 https://github.com/kenwheeler/slick/#settings

默认值为 5。我将其更改为 100 并且拖动幻灯片再次起作用:

touchThreshold:100

【讨论】:

【参考方案2】:

您是否尝试过添加swipeToSlide 选项并将其设置为true

今天遇到了同样的要求,也许这会对未来的搜索者有所帮助。

【讨论】:

【参考方案3】:

尝试注释掉或删除该行:

//max = _.slideCount * 2;

【讨论】:

以上是关于Slick.js:滑动滑块未正确拖动(快速回到第一张幻灯片)的主要内容,如果未能解决你的问题,请参考以下文章

使用带有扭曲位置的slick.js的缩略图滑块

轮播插件Slick.js使用方法详解

使用slick.js的“分层”滑块

滑块未显示所有图像

移动视图图像上的滑块未显示

slider.goToNextSlide() 滑块未定义 bxSlider