본문 바로가기
Effect

parallax Effect - 03

by 코딩 냠냠 2022. 9. 20.
728x90
반응형

스크립트를 이용한 패럴랙스효과 만들기 03

스크롤을 위로 올리면 메뉴바가 나오는 효과와 스크롤이 마지막에 위치 했을 때, 탑 버튼이 생겨나게 만들어 봅시다✏️

숨김 메뉴 / 탑 버튼

가장먼저 탑 버튼을 만들어야 되겠죠😏
탑 버튼을 간단하게 만들어 줍시다~ 탑 버튼은 .show가 붙었을 때 나타나게끔 bottom은 -220px로 만들고, .show가 붙었을 때는 bottom: 20px으로 css로 만들어 줍니다.

<nav id="parallax__Top">
    Top
</nav>

#parallax__Top {
    position: fixed;
    left: 50%;
    bottom: -220px;
    transform: translateX(-50%);
    z-index: 100000;
    width: 40px;
    height: 40px;
    background: rgba(0,0,0,0.4);
    line-height: 40px;
    color: #fff;
    border-radius: 50%;
    padding-left: 10px;
    cursor: pointer;
    transition: all 0.3s;
}
#parallax__Top.show {
    bottom: 20px;
}
#parallax__Top:hover {
    background: #fff;
    color: #000;
}

탑 버튼 클릭시

탑 버튼을 클릭 하면 화면이 최 상단으로 이동할 수 있게 스크립트를 적어 줍니다✏️

//top버튼
document.querySelector("#parallax__Top").addEventListener("click", () => {
    window.scrollTo({left: 0, top: 0, behavior: "smooth"});
});

메뉴바 나타내기 / 탑 버튼 나타내기

let nowScroll = true;   //--> 실행
// let nowScroll = fasle;  //--> 작동x
let lastSCroll = 0;

function scrollProgress(){
    nowScroll = true;

    setInterval(() => {         //setInterval()을 이용하여 시간차
        if(nowScroll){
            nowScroll = false;
            hasScroll();
        }
    },300)
}

function hasScroll(){
    let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop; //세로 값을 구하는 방법

    if(scrollTop < lastSCroll){
        document.querySelector("#parallax__nav").classList.add("show");
    }else {
        document.querySelector("#parallax__nav").classList.remove("show");
    }
    lastSCroll = scrollTop;         //스크롤을 위로 올리면 메뉴바가 나타남

    
    if(scrollTop >= (document.body.scrollHeight - window.outerHeight)) {
        document.querySelector("#parallax__Top").classList.add("show");
    } else {
        document.querySelector("#parallax__Top").classList.remove("show");
    }
}
window.addEventListener("scroll", scrollProgress);

'Effect' 카테고리의 다른 글

parallax Effect - 05  (2) 2022.09.20
parallax Effect - 04  (2) 2022.09.20
SliderEffect - 04  (3) 2022.09.19
mouseEffect 02  (4) 2022.09.19
mouseEffect 01  (2) 2022.09.19

댓글


자바스크립트

Javascript

자세히 보기
html
css
광고 준비중입니다.
<