在某些情况下,宽度计算似乎不正确,其中一种是,如果您的 slick 元素在窗口上创建垂直滚动条,则其宽度计算会偏离 17px(窗口滚动条的宽度)。
我发现这个 github 问题与我遇到的问题完全相同:
https://github.com/kenwheeler/slick/issues/2717 https://github.com/kenwheeler/slick/issues/2717
我已尝试触发调整大小事件来纠正它,但它似乎不起作用。我注意到,当触发“afterChange”事件时,光滑的容器会正确调整大小,但我不知道如何在初始加载时执行此操作。
$(element).slick({
//slick settings
}).on('afterChange',function(event){
//When this fires the container will resize correctly.
//However, it fires once on initial load without resizing correctly.
}).trigger('afterChange');
我想也许触发调整大小会起作用:
$(element).on('reInit', function(event, slick) {
$(window).trigger('resize');
});
但它似乎没有帮助。
单击上一个/下一个导航手柄后,每次都正确调整大小。我需要在初始加载时调用什么才能使容器正确调整大小,或者更好的是,有没有办法用任何 css 来修复此问题?
edit:
更多信息,如果我在平滑加载之前创建浏览器滚动条,它每次都会完全正确加载。似乎是一个奇怪的边缘情况,如果 slick 是创建浏览器滚动条的元素,则其宽度计算将减少 17px。
看来如果在 slick 初始化后创建浏览器滚动条,slick 就会出现问题。