Я пытаюсь реализовать слайдер-синхронизацию с использованием библиотеки slick
. У меня есть массив изображений, называемый pictures
, исходящий из бэкэнда. Я перебираю эти изображения, чтобы заполнить их под моими slider-for
и slider-nav
div.Изображение слайдера slick загружается только после нажатия стрелки скольжения
HTML код:
<head>
<style>
.slick-arrow {
color: #666666;
background: red;
}
.slider-for {
max-width: 960px;
margin-left: auto;
margin-right: auto;
margin-top: 5%;
}
.slider-nav h1 {
display: inline-block;
}
.slider-nav .slick-slide {
text-align: center;
width: 337px;
}
.container {
margin-bottom: 5%;
margin-top: 5%;
}
</style>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick-theme.css"/>
</head>
<div class="container-fluid padding25">
<h2>Pictures</h2>
<div class="slider-for">
<% var index = 0;%>
<%_.each(pictures, function(picture) { %>
<div>
<img src="<%=picture.pictureUrl%>" class="img-rounded" width="460" height="345"/>
</div>
<%
index++;
});
%>
</div>
<div class="slider-nav">
<%_.each(pictures, function(picture) { %>
<div>
<img src="<%=picture.pictureUrl%>" class="img-rounded" width="150" height="300"/>
</div>
<%
index++;
});
%>
</div>
<div class="row">
<h2>Videos</h2>
...
</div>
</div>
JavaScript:
<script type="text/javascript" src="/slick-1.5.7/slick/slick.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
console.log("inside docready");
$('.slider-for').slick({
slidesToShow: 1,
slidesToScroll: 1,
fade: true,
asNavFor: '.slider-nav',
});
$('.slider-nav').slick({
slidesToShow: 3,
slidesToScroll: 1,
dots: true,
asNavFor: '.slider-for',
dots: true,
centerMode: true,
centerPadding: '3%',
focusOnSelect: true,
});
$('.single-item').slick({
dots: false,
arrows: true,
});
});
</script>
только одно изображение отображается в slider-nav
на странице загрузки. При щелчке влево/вправо slick-arrow
изображения отображаются правильно. Я попытался написать тот же код в jsFiddle. Но я думаю, что там хорошо работает (не уверен, что это потому, что я воздержался от использования петли for
.)
Еще одна странная вещь, которую я только что наблюдал, - это если я нажму F12, чтобы перейти к инструментам dev, это приведет к тому, что изображения «слайдер-nav» загрузятся правильно. (без щелчка стрелками) – AshwiniR