单击图库中的图像时推进光滑滑块(一页上有多个光滑滑块)
Advance slick slider when image in gallery is clicked (multiple slick sliders on one page)
我遇到了这个修改,用于在单击当前图像时前进的光滑滑块(见下文)。当我在包含多个画廊的页面上实施它时,当我单击一个画廊时,它会推进所有画廊,而不仅仅是选择的那个。是否有可能使用例如"this" 选择器在这里?
http://codepen.io/ethanclevenger91/pen/MYNGrN
window.onload=function(){
$slideshow = $('.slider').slick({
dots:false,
autoplay:false,
arrows:false,
adaptiveHeight: true,
slidesToShow:1,
slidesToScroll:1
});
$(".slide").click(function() {
$slideshow.slick('slickGoTo', parseInt($slideshow.slick('slickCurrentSlide'))+1);
});
};
请看下面代码笔:http://codepen.io/anon/pen/ZOGmWo?editors=1010
主要思想是分别定义每个滑块。
首先,定义一个对象来容纳所有滑块:
var sliders = {};
然后,遍历所有滑块,提取 ID 并在我们的地图中保存对新定义滑块的引用,由 ID 索引:
$('.slider').each(function (index, slider) {
var id = slider.getAttribute('id');
console.log(id);
sliders[id] = $(slider).slick({ ... })
});
现在,在点击处理程序上,我们使用 $(this).closest('.slider')
和使用进度来确定点击的幻灯片属于哪个滑块。
$('.slide').click(function() {
var id = $(this).closest('.slider').get(0).getAttribute('id');
var $slideshow = sliders[id];
$slideshow.slick('slickGoTo', parseInt($slideshow.slick('slickCurrentSlide'))+1);
});
我遇到了这个修改,用于在单击当前图像时前进的光滑滑块(见下文)。当我在包含多个画廊的页面上实施它时,当我单击一个画廊时,它会推进所有画廊,而不仅仅是选择的那个。是否有可能使用例如"this" 选择器在这里? http://codepen.io/ethanclevenger91/pen/MYNGrN
window.onload=function(){
$slideshow = $('.slider').slick({
dots:false,
autoplay:false,
arrows:false,
adaptiveHeight: true,
slidesToShow:1,
slidesToScroll:1
});
$(".slide").click(function() {
$slideshow.slick('slickGoTo', parseInt($slideshow.slick('slickCurrentSlide'))+1);
});
};
请看下面代码笔:http://codepen.io/anon/pen/ZOGmWo?editors=1010
主要思想是分别定义每个滑块。
首先,定义一个对象来容纳所有滑块:
var sliders = {};
然后,遍历所有滑块,提取 ID 并在我们的地图中保存对新定义滑块的引用,由 ID 索引:
$('.slider').each(function (index, slider) {
var id = slider.getAttribute('id');
console.log(id);
sliders[id] = $(slider).slick({ ... })
});
现在,在点击处理程序上,我们使用 $(this).closest('.slider')
和使用进度来确定点击的幻灯片属于哪个滑块。
$('.slide').click(function() {
var id = $(this).closest('.slider').get(0).getAttribute('id');
var $slideshow = sliders[id];
$slideshow.slick('slickGoTo', parseInt($slideshow.slick('slickCurrentSlide'))+1);
});