如何使用此图像轮播的索引 return 实际图像?
How can I use the index of this image carousel to return the actual image?
几个小时以来,我一直在尝试 select 我的轮播中的中心图像(或当前图像)。 selected 后,我想在屏幕中心视口中显示相同的图像;考虑在当前照片显示在更大的显示屏上时滚动浏览照片预览。当您滚动时,中心图像会动态变化,因此视口也会随之变化。
这是我的 HTML 我正在尝试宣传所述轮播图片的地方;视口:
<div class="col-md-6" style="height:480px;border:1px solid #fff">
<div id="view-port">
</div>
</div>
我最接近成功的是:
window.onload = function() {
var centerSlide = document.createElement("img");
centerSlide.src = $('#myCarousel').slick('slickCurrentSlide');
document.getElementById("view-port").appendChild(centerSlide);
console.log(centerSlide);
};
哪个日志
<img src="0">
正如所料,currentSlide 的索引。这可以在这里观察到:
https://jsfiddle.net/positivecharge8/nddaj84x/
但我不知道如何获取图像,所以我可以参考它放入 div。我知道我现在拥有的代码不会在我滚动轮播时动态更改视口 div 图像 - 没关系,现在我想至少获得 一些 图片在上面。谢谢!
使用 $('#myCarousel').slick('slickCurrentSlide');
获取当前图像的 index 而不是图像的 src。使用jQuery的prop
函数获取图片的src。
下面会找到当前幻灯片,然后获取它的src,用于新图片的src。
var centerSlide = document.createElement("img");
centerSlide.src = $('#shoe-carousel .slick-current img').prop('src');
document.getElementById("view-port").appendChild(centerSlide);
这是一个工作示例:https://jsfiddle.net/4g4wbj1g/8/
要在幻灯片更改时进行 centerSlide
更新,我会考虑使用 afterChange
事件。这里有一些很好的文档:http://kenwheeler.github.io/slick/
你可以hook到slick的afterChange事件
<div id="slickme">
<div class="myelement"><img src="http://kenwheeler.github.io/slick/img/fonz2.png"></div>
<div class="myelement"><img src="http://kenwheeler.github.io/slick/img/fonz3.png"></div>
</div>
// On slide change
$('#slickme').on('afterChange', function(event, slick, currentSlide){
console.log(currentSlide);
//get the element dom from the page
console.log($('#slickme .myelement[data-slick-index = ' + currentSlide + ']').html());
});
然后你可以使用任何你想要的选择器,如果你想要 img src,你可以使用类似的东西:
$('#slickme .myelement[data-slick-index = ' + currentSlide + '] img').attr('src');
几个小时以来,我一直在尝试 select 我的轮播中的中心图像(或当前图像)。 selected 后,我想在屏幕中心视口中显示相同的图像;考虑在当前照片显示在更大的显示屏上时滚动浏览照片预览。当您滚动时,中心图像会动态变化,因此视口也会随之变化。
这是我的 HTML 我正在尝试宣传所述轮播图片的地方;视口:
<div class="col-md-6" style="height:480px;border:1px solid #fff">
<div id="view-port">
</div>
</div>
我最接近成功的是:
window.onload = function() {
var centerSlide = document.createElement("img");
centerSlide.src = $('#myCarousel').slick('slickCurrentSlide');
document.getElementById("view-port").appendChild(centerSlide);
console.log(centerSlide);
};
哪个日志
<img src="0">
正如所料,currentSlide 的索引。这可以在这里观察到:
https://jsfiddle.net/positivecharge8/nddaj84x/
但我不知道如何获取图像,所以我可以参考它放入 div。我知道我现在拥有的代码不会在我滚动轮播时动态更改视口 div 图像 - 没关系,现在我想至少获得 一些 图片在上面。谢谢!
使用 $('#myCarousel').slick('slickCurrentSlide');
获取当前图像的 index 而不是图像的 src。使用jQuery的prop
函数获取图片的src。
下面会找到当前幻灯片,然后获取它的src,用于新图片的src。
var centerSlide = document.createElement("img");
centerSlide.src = $('#shoe-carousel .slick-current img').prop('src');
document.getElementById("view-port").appendChild(centerSlide);
这是一个工作示例:https://jsfiddle.net/4g4wbj1g/8/
要在幻灯片更改时进行 centerSlide
更新,我会考虑使用 afterChange
事件。这里有一些很好的文档:http://kenwheeler.github.io/slick/
你可以hook到slick的afterChange事件
<div id="slickme">
<div class="myelement"><img src="http://kenwheeler.github.io/slick/img/fonz2.png"></div>
<div class="myelement"><img src="http://kenwheeler.github.io/slick/img/fonz3.png"></div>
</div>
// On slide change
$('#slickme').on('afterChange', function(event, slick, currentSlide){
console.log(currentSlide);
//get the element dom from the page
console.log($('#slickme .myelement[data-slick-index = ' + currentSlide + ']').html());
});
然后你可以使用任何你想要的选择器,如果你想要 img src,你可以使用类似的东西:
$('#slickme .myelement[data-slick-index = ' + currentSlide + '] img').attr('src');