Skip to content

Commit

Permalink
docs: update contents
Browse files Browse the repository at this point in the history
  • Loading branch information
youngkyo0504 authored and github-actions[bot] committed Nov 18, 2023
1 parent 0bbf758 commit b281c48
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions src/pages/web/viewtransitionapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: " View Transition API"
full_path: "src/pages/web/viewtransitionapi.md"
---

힘들게 구현했던 [FLIP](https://www.youtube.com/watch?v=8q_05PUYv1o&ab_channel=ChromeforDevelopers) 애니메이션을 `ViewTransition API`덕분에 브라우저 기본 API로 구현이 가능해졌다. 하지만 언제쯤 실무에서 쓸 수 있을지 모르겠다. 그때쯤이면 AI가 세상을 지배하지 않았을까?

기본 사용법
`document.startViewTransition`에 콜백 함수를 넣어준다. 이전 스냅샷과 현재 스냅샷을 자연스럽게 이어준다. 기본 애니메이션 옵션은 `crossFade`다. `crossFade`를 설명하면 이전 스냅샷은 opacity 0 에서 1로 변하면서 사라지고, 현재 스냅샷은 opacity가 0~1로 변하면서 나타난다.

1. 0.5초 마다
2. 이전 snapshot을 만들고
3. 새로운 snapshot으로 자연스레 교체


```ts
setInterval(() => {
document.startViewTransition(() => {
h1.textContent = word[index++]
if (index >= word.length) index = 0
})
}, 500)
```

css에서는 다음과 같이 이름을 정해주고 사라질 상태와 나타날 상태 애니메이션을 설정할 수 있다.

```css
@media (prefers-reduced-motion: no-preference) {
html::view-transition-old(replace-effect) {
animation:
var(--animation-fade-out),
var(--animation-scale-down);
}
}

@media (prefers-reduced-motion: no-preference) {
html::view-transition-new(replace-effect) {
z-index: 1;
animation:
var(--animation-fade-out) reverse,
var(--animation-slide-in-up);
}
}

```



[관련 영상](https://www.youtube.com/watch?v=N2BKAKwGP6M&ab_channel=ChromeforDevelopers)
[관련 블로그](https://nerdy.dev/text-replace-transitions)

0 comments on commit b281c48

Please sign in to comment.