티스토리 뷰
highlight(); //외부 스크립트 함수 (highlight)호출
modal (); //외부 스크립트 함수 (modal, 소스보기 창)호출
tabMenu (); //외부 스크립트 함수 (tabMenu, 소스보기의 탭 메뉴)호출
// slider03
const sliderWrap = document.querySelector(".slider__wrap"); //sliderWrap에 div 태그 .slider__wrap 저장
const sliderImg = document.querySelector(".slider__img"); //sliderImg에 div 태그 .slider_img 저장, 이미지 한 칸만 보이는 영역
const sliderInner = document.querySelector(".slider__inner"); //이미지 움직이는 영역
const slider = document.querySelectorAll(".slider"); //slider에 div 태그 .slider (최종적으로 이미지를 담는 다섯개의 div)
//.slider__inner > div:first-child
let currentIndex = 0;
let sliderCount = slider.length; //이미지 갯수
let sliderWidth = sliderImg.offsetWidth; //이미지 가로 값
let sliderClone = sliderInner.firstElementChild.cloneNode(true); //첫번째 이미지 복사
sliderInner.appendChild(sliderClone); //첫번째 이미지를 마지막에 넣어줌
function sliderEffect(){
currentIndex++; //sliderEffect함수가 실행할 때 마다 index값 1 증가
sliderInner.style.transition = "all 0.3s"; //sliderInner의 움직임을 0.3초 동안으로 설정
sliderInner.style.transform = `translateX(-${sliderWidth*currentIndex}px)`; //sliderInner를 x축으로 -sliderWidth(-800px)*currentIndex픽셀만큼 바꾼다.
//마지막 사진에 갔을때
if(currentIndex == sliderCount){ //인덱스 값이 증가하다가 sliderCount(slider의 길이)와 같아지면
//setTimeout() 메서드는 만료된 후 함수나 지정한 코드 조각을 실행하는 타이머를 설정합니다.
setTimeout(()=>{
//이미지 초기화
sliderInner.style.transition = "0s"; //이미지 전환 시간을 0으로 바꿔 초기화가 자연스럽게 이루어지게 한다.
sliderInner.style.transform = 'translateX(0)'; //이미지의 위치 값을 0으로 바꿈(제일 처음 이미지로 온다.)
}, 300); //함수 지연시간을 transition의 움직인 시간 0.3초와 맞춰 자연스럽게 이미지초기화/전환이 이어게 한다.
currentIndex = 0; //인덱스 값 초기화
}
}
setInterval(sliderEffect, 2000); //2초마다 sliderEffect함수를 실행시켜주는 setInterval메소드
'Script Sample > Slide Effect' 카테고리의 다른 글
Slide Effect - 닷 버튼 추가 (0) | 2022.02.17 |
---|---|
Slide Effect - 버튼 추가 (0) | 2022.02.17 |
Slide Effect - 위로 움직이기 (0) | 2022.02.17 |
Slide Effect - 좌로 움직이기 (0) | 2022.02.17 |
Slide Effect - 페이드 효과 (0) | 2022.02.15 |
댓글
© 2018 webstoryboy