인프런 커뮤니티 질문&답변
jquery 이용해서 슬라이더를 만드려는데요..
작성
·
179
0
티스토리에서 슬라이더를 만드려는데 아래 코드로 만들어서 진행시에 초기 웹페이지가 로드되고 1페이지부터 차근차근 뜨는게 아니라 2페이지가 잠깐동안 계속 떠있다가 3페이지부터 정상적으로 자동 넘김이 되는데요..
초기화를 해줘야하는것 같은데 이것저것 다 해봐도 안되서 혹시 해결이 가능하신 분이 계실까요? ㅠㅠ
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<div class="slider-1">
<div class="slides">
<div class="active" style="background-image:url(https://images.prismic.io/stayfolio-production/73f99b79-336f-47fd-8ace-afc00978147d_banner.jpg?auto=compress,format);"></div>
<div style="background-image:url(https://images.prismic.io/stayfolio-production/038914a1-9b23-4f26-9b10-84669d9a1339_banner.jpg?auto=compress,format);"></div>
<div style="background-image:url(https://images.prismic.io/stayfolio-production/586abdef-7163-4629-9c39-6d7a627ae10e_01_banner_picture.jpg?auto=compress,format);"></div>
<div style="background-image:url(https://images.prismic.io/stayfolio-production/3b4bf417-3c41-4d05-b62c-f02a293ba115_banner.jpg?auto=compress,format);"></div>
</div>
<div class="page-btns">
<div class="active"></div>
<div></div>
<div></div>
<div></div>
</div>
<div class="side-btns">
<div>
<span><i class="fas fa-angle-left"></i></span>
</div>
<div>
<span><i class="fas fa-angle-right"></i></span>
</div>
</div>
</div>
/* 폰트 적용 */
@import url(//fonts.googleapis.com/earlyaccess/notosanskr.css);
html {
font-family: "Noto Sans KR", sans-serif;
}
/* 노말라이즈 */
body, ul, li, h1, h2, h3, h4, h5 {
margin:0;
padding:0;
list-style:none;
}
a {
color:inherit;
text-decoration:none;
}
/* 커스텀 */
/* 슬라이더 1 시작 */
.slider-1 {
height:400px;
position:relative;
}
/* 슬라이더 1 - 페이지 버튼 */
.slider-1 > .page-btns {
text-align:center;
position:absolute;
bottom:20px;
left:0;
width:100%;
}
.slider-1 > .page-btns > div {
width:20px;
height:20px;
background-color:rgba(255,255,255,.5);
border-radius:4px;
display:inline-block;
cursor:pointer;
}
.slider-1 > .page-btns > div.active {
background-color:rgba(255,255,255,1);
}
/* 슬라이더 1 - 슬라이드 */
.slider-1 > .slides > div {
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
opacity:0;
transition: opacity 0.3s;
background-position:center;
background-size:cover;
background-repeat:no-repeat;
}
.slider-1 > .slides > div.active {
opacity:1;
}
/* 슬라이더 좌우 버튼 */
.slider-1 > .side-btns > div {
position:absolute;
top:0;
left:0;
width:25%;
height:100%;
cursor:pointer;
}
.slider-1 > .side-btns > div:last-child {
left:auto;
right:0;
}
.slider-1 >.side-btns > div > span {
position:absolute;
top:50%;
left:20px;
transform:translatey(-50%);
background-color:white;
opacity:0.5;
padding:1px 13px;
border-radius:50px;
font-size:25px;
}
.slider-1 >.side-btns > div:last-child > span {
left:auto;
right:20px;
}
/* 슬라이더 1 끝 */
// 기존 버튼형 슬라이더
$('.slider-1 > .page-btns > div').click(function(){
var $this = $(this);
var index = $this.index();
$this.addClass('active');
$this.siblings('.active').removeClass('active');
var $slider = $this.parent().parent();
var $current = $slider.find(' > .slides > div.active');
var $post = $slider.find(' > .slides > div').eq(index);
$current.removeClass('active');
$post.addClass('active');
});
// 좌/우 버튼 추가 슬라이더
$('.slider-1 > .side-btns > div').click(function(){
var $this = $(this);
var $slider = $this.closest('.slider-1');
var index = $this.index();
var isLeft = index == 0;
var $current = $slider.find(' > .page-btns > div.active');
var $post;
if ( isLeft ){
$post = $current.prev();
}
else {
$post = $current.next();
};
if ( $post.length == 0 ){
if ( isLeft ){
$post = $slider.find(' > .page-btns > div:last-child');
}
else {
$post = $slider.find(' > .page-btns > div:first-child');
}
};
$post.click();
});
setInterval(function(){
$('.slider-1 > .side-btns > div').eq(1).click();
}, 3000);
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




