반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 국비IT
- 자바스크립트 코딩테스트
- typescript
- 코딩테스트
- php
- 정보처리기사실기요약
- 스프링
- Oracle
- 리액트네이티브
- 자바의정석
- 이안의평일코딩
- 정보처리기사정리
- spring
- javascript
- 정보처리기사실기
- 타입스크립트
- ReactNative
- 자스코테
- Java의정석
- 자바스크립트
- VUE
- 정보처리기사요약
- 정보처리기사
- CSS
- 오라클
- 리액트
- 정보처리기사실기정리
- 평일코딩
- 국비코딩
- react
Archives
- Today
- Total
이안의 평일코딩
[React] 리액트 헤더 스크롤 시 CSS 변경 본문
반응형
헤더 스크롤 시 디자인 변경
Vue에서 제작한 코드를 React로 변환하는 작업 중인데 코드가 달라서 리액트 버젼으로도 올려본다.
Vue는 위의 블로깅을 참조.
Header.js
import React, {useState, useEffect} from 'react';
import "./css/Header.css";
function Header() {
const [scrollPosition, setScrollPosition] = useState(0);
const updateScroll = () => {
setScrollPosition(window.scrollY || document.documentElement.scrollTop);
}
useEffect(()=>{
window.addEventListener('scroll', updateScroll);
});
return (
<div className="header">
<div className={scrollPosition < 100 ? "original_header" : "change_header"}>
<p className="title">타이틀</p>
</div>
</div>
)
}
export default Header;
Header.css
@import url('https://cdn.rawgit.com/moonspam/NanumSquare/master/nanumsquare.css');
.headerLogo{
width: 1000px;
}
.title {
margin: 18px 0px;
float: left;
padding-left: 100px;
}
.original_header {
position: fixed;
color: white;
font-family: 'NanumSquare', sans-serif;
background-color: #11ffee00;
font-size:40px;
font-weight: 400;
width: 100%;
height: 80px;
top: 0;
}
.change_header {
position: fixed;
color: black;
font-family: 'NanumSquare', sans-serif;
background-color: white;
font-size:40px;
font-weight: 400;
width: 100%;
height: 80px;
top: 0;
border-bottom: 1px solid #EBEBEB;
}
JSX안에서 삼항연산자를 사용해 {조건 ? 참일때 : 거짓일때} 스크롤 100px 이상일때 변환되도록 해주면 된다.
그리고 CSS에서 오리지널과 스크롤 내렸을 때 바뀔 디자인을 따로 지정해주면 끝.
반응형
'Front-end > React' 카테고리의 다른 글
[React] 리액트 SPA, JSX 그리고 map, filter 메서드 (0) | 2022.07.30 |
---|---|
[React] 리액트 기본적인 내용 총 정리 (0) | 2022.07.30 |
[React] 다양한 애니메이션 모듈 react-reveal (0) | 2021.05.12 |
[React] 리액트 이미지 넣는 방법 (이미지 경로) (4) | 2021.05.11 |
[React] 리액트 IE11 익스플로러 연동 크로스 브라우징 해결 (0) | 2021.05.11 |
Comments