티스토리 뷰

highlight();    //외부 스크립트 함수 (highlight)호출
highlight();    //외부 스크립트 함수 (highlight)호출
modal ();       //외부 스크립트 함수 (modal, 소스보기 창)호출
tabMenu ();     //외부 스크립트 함수 (tabMenu, 소스보기의 탭 메뉴)호출

// slider04
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 sliderHeight = sliderImg.offsetHeight;    //이미지 세로 값
let sliderClone = sliderInner.firstElementChild.cloneNode(true);    //첫번째 이미지 복사
sliderInner.appendChild(sliderClone);   //첫번째 이미지를 마지막에 넣어줌

function sliderEffect(){
    console.log(sliderHeight*currentIndex);
    currentIndex++;     //sliderEffect함수가 실행할 때 마다 index값 1 증가
    sliderInner.style.transition = "all 0.3s";      //sliderInner의 움직임을 0.3초 동안으로 설정
    sliderInner.style.transform = `translateY(-${sliderHeight*currentIndex}px)`;     //sliderInner를 x축으로 -sliderWidth(-800px)*currentIndex픽셀만큼 바꾼다.

    //마지막 사진에 갔을때
    if(currentIndex == sliderCount){    //인덱스 값이 증가하다가 sliderCount(slider의 길이)와 같아지면
        //setTimeout() 메서드는 만료된 후 함수나 지정한 코드 조각을 실행하는 타이머를 설정합니다.
        setTimeout(()=>{    
            //이미지 초기화
            sliderInner.style.transition = "0s";    //이미지 전환 시간을 0으로 바꿔 초기화가 자연스럽게 이루어지게 한다.
            sliderInner.style.transform = 'translateY(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