【发布时间】:2018-11-28 15:59:04
【问题描述】:
我正在制作嵌套的光滑滑块。我希望单击任何第一个滑块元素隐藏第一个滑块并显示第二个滑块(在第一个滑块的子块上创建)。我遇到的问题是幻灯片从我的预览块之外开始(参见图片)
- https://i.imgur.com/PDQbqCA.png(第一张幻灯片)
- https://i.imgur.com/1JiP7jn.png(第二张幻灯片,点击第一张幻灯片元素)
这是我的代码:
html:
<div class="slides-preview">
<button type="button" class="arrow-prev></button>
<div class="slide1">
<div class="slide1-elm">
<div class="header">Name slide 1 element 1</div>
<div class="slide2">
<span class="close">close</span>
<div class="option"></div>
<div class="option"></div>
<div class="option"></div>
</div>
</div>
<div class="slide1-elm">
<div class="header">Name slide 1 element 2</div>
<div class="slide2">
<span class="close">close</span>
<div class="option"></div>
<div class="option"></div>
<div class="option"></div>
</div>
</div>
<div class="slide1-elm">
<div class="header">Name slide 1 element 3</div>
<div class="slide2">
<span class="close">close</span>
<div class="option"></div>
<div class="option"></div>
<div class="option"></div>
</div>
</div>
</div>
<button type="button" class="arrow-next></button>
</div>
css:
.slide2 { display: none; }
button { position: absolute; top: 0; }
.arrow-prev { left: 0; }
.arrow-next { right: 0; }
.close { }
jquery:
$(document).ready(function(){
function initCompSlide(){
$('.slide1').not('.slick-initialized').slick({
infinite: false,
initialSlide: 0,
slidesToShow: 4,
slidesToScroll: 4,
slickSetOption: true,
prevArrow: $('button.arrow-prev'),
nextArrow: $('button.arrow-next')
});
}
function initOptSlide(elm){
elm.not('.slick-initialized').slick({
infinite: false,
initialSlide: 0,
slidesToShow: 4,
slidesToScroll: 4,
focusOnSelect: true,
slickSetOption: true,
prevArrow: $('button.arrow-prev'),
nextArrow: $('button.arrow-next')
});
}
initCompSlide();
$(document).on('click', '.slide1-elm', function () {
var optBlock = $(this).find('.slide2');
initOptSlide(optBlock);
});
$(document).on('click', '.close', function (e) {
e.stopPropagation();
$('.slide2.slick-initialized').slick('unslick'); //notworking
$('.slide2.slick-initialized').slick('setPosition'); //not working
});
});
请参阅此处以检查我正在使用的另一种方式来实现我所需要的 http://jsfiddle.net/fmo50w7n/3631/。 但它不能按预期工作。 我希望所有红色块都位于 slide1 的第一个元素下的同一点(名称 s1 elm 1 或名称 s4 elm 1)
【问题讨论】:
标签: jquery nested carousel slideshow slick.js