slick-track width초기값 0 에 대한 질문입니다.
본문
안녕하세요 처음 질문올려봅니다 잘부탁드립니다.
slick 클라스 를 잘 주었고 전혀 문제 될 것이 없어요.
하지만 소스 보기에서 slick-track width값이 0으로 나오는 바람에
처음에 이미지들이 뭉쳐서 나오고 사이즈나 이동시 제대로 나오고 있습니다.
인터넷 찾아봐도, 모두 같은 내용이고
문제 사항들 그대로 수정해서 진행해 보았지만 여전해요.
잘 사용이 되는 코드를 다운 받아 가져온 다음 복붙해봐도 같은 증상이에요.
<style>
.slider {
width: 80%;
margin: 20px auto;
text-align: center;
padding: 0;
}
.slider .slide {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0;
}
.left-slider-arrow,
.right-slider-arrow {
width: 32px;
height: auto;
}
.left-slider-arrow {
left: -60px;
}
.right-slider-arrow {
right: -60px;
}
</style>
<div class="slider">
<div class="slide">
1
</div>
<div class="slide">
2
</div>
<div class="slide">
3
</div>
<div class="slide">
4
</div>
<div class="slide">
5
</div>
<div class="slide">
6
</div>
<div class="slide">
7
</div>
<div class="slide">
8
</div>
</div>
<script type="text/javascript">
let carousel = function () {
$('.slider').slick({
arrows: true,
prevArrow: "<img class='left-slider-arrow slick-prev' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee0140311ada418533d_left-slider-arrow.svg'>",
nextArrow: "<img class='right-slider-arrow slick-next' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee54a33c9a2cf14e0de_right-slider-arrow.svg'>",
speed: 1000,
infinite: true,
pauseOnHover: false,
autoplay: true,
autoplaySpeed: 2000,
slidesToShow: 6,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 4
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 580,
settings: {
slidesToShow: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1
}
}
]
});
};
carousel();
</script>
제가 보기에 아무리 봐도 문제가 없어요,
만약 코드들 중 외적인 부분이 있다면,,
어느 부분일지도 말씀 부탁드려요..
여기 작성된 코드는 일반 html에 작성하면 잘 나옵니다.
감사합니다.
답변 기다리겠습니다.
!-->!-->!-->
답변 5
slick 코드 실행 전 리프레시 한번 해주세요
$('.slider').slick('refresh');
아래 움짤 보시면 잘되는거 확인되실꺼에요
!-->
슬릭 src까지 올려주셔야 같은 버전에서 테스트가 가능합니다.
cdn으로 샘플생성시 문제없어보입니다.
<style>
.slider {
width: 80%;
margin: 20px auto;
text-align: center;
padding: 0;
}
.slider .slide {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0;
}
.left-slider-arrow,
.right-slider-arrow {
width: 32px;
height: auto;
}
.left-slider-arrow {
left: -60px;
}
.right-slider-arrow {
right: -60px;
}
</style>
<div class="slider">
<div class="slide">
1
</div>
<div class="slide">
2
</div>
<div class="slide">
3
</div>
<div class="slide">
4
</div>
<div class="slide">
5
</div>
<div class="slide">
6
</div>
<div class="slide">
7
</div>
<div class="slide">
8
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.css"/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.css"/>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
<script type="text/javascript">
let carousel = function() {
$('.slider').slick({
arrows: true,
prevArrow: "<img class='left-slider-arrow slick-prev' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee0140311ada418533d_left-slider-arrow.svg'>",
nextArrow: "<img class='right-slider-arrow slick-next' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee54a33c9a2cf14e0de_right-slider-arrow.svg'>",
speed: 1000,
infinite: true,
pauseOnHover: false,
autoplay: true,
autoplaySpeed: 2000,
slidesToShow: 6,
slidesToScroll: 1,
responsive: [{
breakpoint: 1024,
settings: {
slidesToShow: 4
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 580,
settings: {
slidesToShow: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1
}
}
]
});
};
carousel();
</script>
다음 코드가 도움이 될지 모르겠습니다.
...
<script type="text/javascript">
let carousel = function () {
$('.slider').slick({
arrows: true,
prevArrow: "<img class='left-slider-arrow slick-prev' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee0140311ada418533d_left-slider-arrow.svg'>",
nextArrow: "<img class='right-slider-arrow slick-next' src='https://uploads-ssl.webflow.com/5ffc7d9c41880c19fc8b613a/62423ee54a33c9a2cf14e0de_right-slider-arrow.svg'>",
speed: 1000,
infinite: true,
pauseOnHover: false,
autoplay: false,
autoplaySpeed: 2000,
slidesToShow: 6,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 4
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 580,
settings: {
slidesToShow: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1
}
}
]
}).on('setPosition', function (slick) {
var slick_list = $(slick.target).children('.slick-list');
var slick_list_t = setInterval(function () {
if (slick_list.width() > 0) {
clearInterval(slick_list_t);
$(window).trigger('resize');
}
}, 100);
});
// $(".slider").slick("refresh");
};
carousel();
</script>
...
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> -->
...
답변을 작성하시기 전에 로그인 해주세요.