티스토리 뷰
반응형
전체 wrapper에 백그라운드 이미지를 주고, 스크롤했을 시 고정이 되게 하고 싶었다.
결론을 먼저 말하자면 한 줄의 코드로 이 기능이 구현되었다.
background-attachment: fixed;
-scroll(기본값) : 스크롤 시 페이지와 함께 같이 움직이는 속성.
-fixed : 스크롤 시 보이는 페이지와 다르게 배경 이미지는 고정되는 속성.
하지만 모바일 브라우저에선 사용할 수 없고, 가끔 버벅거리는 듯한 느낌을 주며 스크롤이 내려간다.
해결 방법 - 배경 레이어를 따로 나누어서 적용하기
//HTML
<div class="container">
<div class="bg"></div> // 배경 처리할 레이어를 따로 분리
<div class="dim">
<div class="content"></div>
</div>
</div>
// CSS
.bg {
position: fixed; // 배경 이미지가 아닌 배경 레이어를 고정
top: 0; ┓
left: 0; ┣ // 배경 레이어의 크기는 컨테이너의 크기와 동일하게 처리
width: 100%; ┃
height: 100%; ┛
background-image: url("img.jpg"); ┓
background-size: cover; ┣ // 배경 이미지는 고정이 아님
background-position: center center; ┛
transform: translateZ(0); // fixed된 요소의 잔상 이슈 해결
will-change: transform; // 예상되는 변화에 관한 힌트를 브라우저에 제공하여 실제 요소가 변화되기 전에 미리 브라우저는 적절하게 최적화.
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- this
- background-attachment
- 상태관리
- css
- jdk
- useMemo
- 고정
- window.location
- useReducer
- jenv
- React
- CORS
- React Native
- button
- useRef
- withcredentials
- yml
- custom hooks
- 리액트
- 스크롤
- React Hooks
- yaml
- zoom
- javascript
- Pressable
- useState
- touchableopacity
- bind
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형