javascript - Slick.js 在第一个和最后一个元素之间平滑过渡
问题描述
我正在尝试使用Slick.js创建一个滑动画廊- 查看“中心模式”部分。
总而言之,画廊功能正常,但是我有一个小故障:当我在最后一个元素上并滚动到第一个元素时 - 我没有得到平滑的过渡,而是第一个元素的小跳跃。
我创建了一个 Codepen 来演示我在说什么:https ://codepen.io/anon/pen/YLExjo
我试图修改任何可能的类或类组合:
.slick-cloned, .slick-active etc...
但我仍然得到这个跳跃。我该如何解决?
解决方案
Slick 对于添加到幻灯片“边缘”元素或从元素中删除的类有一些奇怪的行为。解决该问题的一种方法是添加事件处理程序并自行修复类:
$('.your-selector').slick({
// configuration
}).on('beforeChange', (event, slick, currentSlide, nextSlide) => {
if (currentSlide !== nextSlide) {
document.querySelectorAll('.slick-center + .slick-cloned').forEach((next) => {
// timeout required or Slick will overwrite the classes
setTimeout(() => next.classList.add('slick-current', 'slick-center'));
});
}
});
本质上,它将强制幻灯片中的下一个(或上一个)元素实际具有slick-center
您设置过渡的类。
推荐阅读
- python - 无法在python中修改文本+函数问题
- django - 按当前登录的用户过滤模型选择字段
- java - @NotNull 整数参数
- github - 如何将多个问题分配给 github 中的项目
- python - Python运行程序时出现ModuleNotFoundError,但是在python环境下可以导入模块
- matlab - 在 MATLAB 中存储和访问大量数据
- pytorch - Pytorch 和 Torchvision 编译不同的 CUDA 版本
- python - 添加黑色像素、平方和调整图像大小
- java - Viewmodel 布尔值未设置
- jquery - 如何将一组 URL 连续传递给 $.Ajax URL?