Slick Slider: Mark custom nav link as active when navigate with arrows(滑动滑块:使用箭头导航时,将自定义导航链接标记为活动)
问题描述
我正在使用我的平滑滑块的一些自定义导航链接导航到某些幻灯片。
它工作得很好,但如果我从滑块添加内置箭头,则会出现问题。
当我使用这些链接导航时,自定义链接没有获得.active类。
有什么方法可以添加这个类吗?我知道,我可以使用滑块同步选项来做到这一点。但在我的情况下,我必须使用自定义链接,并且不能使用asNavFor选项。
以下是我当前的代码(此处的工作示例:https://codepen.io/cray_code/pen/JjObOPa):
$('.product-gallery').slick({
dots: false,
arrows: true,
speed: 300,
slidesToShow: 1,
slidesToScroll: 1,
fade: true,
});
// Custom links
$('a[data-slide]').click(function(e) {
e.preventDefault();
var slideno = $(this).data('slide');
$('.product-gallery').slick('slickGoTo', slideno - 1);
$('a[data-slide]').removeClass('active');
this.classList.add('active');
});
多亏了这个answer。
推荐答案
您可以使用afterChange方法执行此任务。这里是现场演示https://codepen.io/sifat009/pen/bGYgBvP
下面是实现此目的的javascript代码。
$('.product-gallery').slick({
dots: false,
arrows: true,
speed: 300,
slidesToShow: 1,
slidesToScroll: 1,
fade: true,
});
$('.product-gallery').on('afterChange', function(event, slick, currentSlide, nextSlide){
const link = document.querySelector(`.action a[data-slide="${currentSlide+1}"]`);
$('a[data-slide]').removeClass('active');
link?.classList?.add('active');
});
$('a[data-slide]').click(function(e) {
e.preventDefault();
var slideno = $(this).data('slide');
$('.product-gallery').slick('slickGoTo', slideno - 1);
$('a[data-slide]').removeClass('active');
this.classList.add('active');
});
这篇关于滑动滑块:使用箭头导航时,将自定义导航链接标记为活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:滑动滑块:使用箭头导航时,将自定义导航链接标记为活动
基础教程推荐
- fetch 是否支持原生多文件上传? 2022-01-01
- npm start 错误与 create-react-app 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01
- 如何添加到目前为止的天数? 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01
- Bokeh Div文本对齐 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
