.hide는 상세 화면이나 다른 화면 넘어갔을 때 안 쓰기 위해서 혹은 뒤로가기로 쓸지 고민이 되서 미리 구현
스크롤 함수는 메인이 길어졌을 때 이펙트를 주고 싶어서
@use '../base/variables' as *;
@use '../base/tokens' as *;
@use "sass:map";
.header{
position: fixed;
top: 0;
left: 0;
right: 0;
height: $header-height;
color: map.get($colors, white);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
z-index: $z-index-header;
background-color: rgba(map.get($colors, primary), 1);
transition:background-color 0.3s ease;
&.scrolled{
background-color: rgba(map.get($colors, primary), 0.7);
backdrop-filter: blur(8px); // 배경 흐림 효과
}
&.hide{
display: none;
}
}
**import React, { useEffect, useState } from "react";
import {Link} from 'react-router-dom'
import '@/styles/components/_header.scss'
import { useLocation } from "react-router-dom";
const Header = () => {
const location = useLocation();
//특정 경로 헤더 숨김
const hideHeaderRouts = ["./sub"];
const shoulHideHeader = hideHeaderRouts.includes(location.pathname);
//스크롤 이벤트
const [isScrolled, setIsScrolled] = useState(false);
useEffect(()=>{
const handleScroll = () =>{
const scrollTop = window.scrollY;
setIsScrolled(scrollTop > 0);
};
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
return(
<header className={`header ${shoulHideHeader ? "hide" : ""}`}>
<h1> 조예지 포트폴리오 </h1>
<nav>
<Link to="/">홈</Link>
</nav>
</header>
);
}
export default Header;**