채택완료
slick-track width초기값 0 에 대한 질문입니다.
안녕하세요 처음 질문올려봅니다 잘부탁드립니다.
slick 클라스 를 잘 주었고 전혀 문제 될 것이 없어요.
하지만 소스 보기에서 slick-track width값이 0으로 나오는 바람에
처음에 이미지들이 뭉쳐서 나오고 사이즈나 이동시 제대로 나오고 있습니다.
인터넷 찾아봐도, 모두 같은 내용이고
문제 사항들 그대로 수정해서 진행해 보았지만 여전해요.
잘 사용이 되는 코드를 다운 받아 가져온 다음 복붙해봐도 같은 증상이에요.
Copy
<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>
Copy
<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>
Copy
<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개 / 댓글 9개
채택된 답변
+20 포인트
slick 코드 실행 전 리프레시 한번 해주세요
Copy
$('.slider').slick('refresh');
아래 움짤 보시면 잘되는거 확인되실꺼에요

다음 코드가 도움이 될지 모르겠습니다.
Copy
...
<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> -->
...
cdn으로 샘플생성시 문제없어보입니다.
Copy
<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>
답변에 대한 댓글 2개
네.. 분명 잘 사용해 왔고, 문제 없었습니다. 다만 지금 프로젝트에 대해서
어떤 부분이 겹치는(?) 충돌인지(?) 모르게 slick-track 부분이 0으로 나오고 있습니다..
.slick-track( width: 100% !important); css 를 주게 되면 깨져버리는 현상이 옵니다.
어떤 부분이 slick-track 에 영향을 주게 되는 부분일까요?
1. 바로 위에 마크업에는 단지 div 한번 묶고,
2. 그 바로 위에는 flex로 가운데 정렬이 끝입니다.
3. swiper slider를 이미 한번 사용했습니다.(커스터마이징을 많이 해서 slick을 사용하려 합니다.)
3가지 이유 중에 문제가 있을까요?
어떤 부분이 겹치는(?) 충돌인지(?) 모르게 slick-track 부분이 0으로 나오고 있습니다..
.slick-track( width: 100% !important); css 를 주게 되면 깨져버리는 현상이 옵니다.
어떤 부분이 slick-track 에 영향을 주게 되는 부분일까요?
1. 바로 위에 마크업에는 단지 div 한번 묶고,
2. 그 바로 위에는 flex로 가운데 정렬이 끝입니다.
3. swiper slider를 이미 한번 사용했습니다.(커스터마이징을 많이 해서 slick을 사용하려 합니다.)
3가지 이유 중에 문제가 있을까요?
답변에 대한 댓글 5개
답변을 작성하려면 로그인이 필요합니다.
2가지입니다.
1번
[code]
$('.slider').slick('unslick').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
}
}
]
});
[/code]
2번
[code]
$('.slider').slick('refresh').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
}
}
]
});
[/code]