ν
μ€νΈκ° μΌμ ν μκ° κ°κ²©μΌλ‘ λ³νλ μ λλ©μ΄μ
μ ꡬνν΄λ³Ό μΌμ΄ μμ΄ μλν΄λ³΄μλ€.
νΉμ λμ²λΌ 첫 λ²μ§Έ λ°©λ²μ μκ°νλ€κ° λ€λ₯Έ λ°©λ²μ κ³ λ―Όνλ λΆλ€μ΄ μμκΉλ΄ κΈ°λ‘ν΄λμλ€.
κ²°κ³Όλ μλμ κ°λ€.
CSSμ content
μμ±κ³Ό keyframes
λ₯Ό μ°λ©΄ λ κ²μ΄λΌκ³ μκ°νμλ€.
<!-- html -->
<div class="wrapper">
My character pick:
</div>
/* css */
.wrapper::after {
content: "Alisa";
animation: textChange 5s infinite;
}
@keyframes textChange {
0% {
content: "Alisa";
}
25% {
content: "Bob";
}
50% {
content: "Julia";
}
75% {
content: "Leo";
}
}
1μ΄λ§λ€ Alisa
λΆν° Leo
κΉμ§ μμ°¨μ μΌλ‘ νλ©΄μ 보μ¬μ§λ€.
λ¨, Chromeμμλ§ λμνκ³ Safariμμλ λμνμ§ μλλ€.(λ§ν¬1, λ§ν¬2)
(μκΈ΄ 건 μΌλΆ iOS λλ°μ΄μ€μμλ λμνλ κ±Έ λ΄€λ€..)
λͺ¨λ λΈλΌμ°μ μμ μ λλ©μ΄μ
μ΄ λ³΄μ¬μΌ νκΈ° λλ¬Έμ λ€λ₯Έ λ°©λ²μ μ°Ύμ보μλ€.
CSSμ content
λμ opacity
λ₯Ό νμ©νμλ€.
<!-- html -->
<div class="wrapper">
My character pick:
<ul>
<li>Alisa</li>
<li>Bob</li>
<li>Julia</li>
<li>Leo</li>
</ul>
</div>
/* css */
ul {
position: relative;
}
li {
position: absolute;
top: 0;
left: 0;
opacity: 0;
animation: textChange2 4s infinite;
}
li:nth-child(1) {
opacity: 1;
}
li:nth-child(2) {
animation-delay: 1s;
}
li:nth-child(3) {
animation-delay: 2s;
}
li:nth-child(4) {
animation-delay: 3s;
}
@keyframes textChange2 {
0%,
25% {
opacity: 1;
}
25.01%,
100% {
opacity: 0;
}
}
μ λλ©μ΄μ
μ κ° li
μ μ μ©νλλ°, λμ animation-delay
λ₯Ό 1μ΄λ§λ€ μ£Όμλ€.
delay μκ°μ΄ μ§λκΈ° μ κΉμ§λ opacity: 0
μ΄κΈ° λλ¬Έμ 보μ΄μ§ μλ€κ° delay μκ°μ΄ μ§λλ©΄ 4μ΄μ 0~25% λμ, μ¦ 1μ΄ λμ opacity: 1
μ΄ λμ΄ νλ©΄μ 보μ¬μ§λ€.
1μ΄κ° μ§λμλ§μ μ¬λΌμ§κ² νκΈ° μν΄μ 25.01%λΌλ μ΄μ κ°(25%)κ³Ό μ½κ°μ μ°¨μ΄κ° λλ κ°μ μ£Ό μλ€.
opacity
λ₯Ό νμ©ν μ λλ©μ΄μ
μ λͺ¨λ λΈλΌμ°μ μμ λμνλ€.
λ€λ§ (λ€λ₯Έ λΈλΌμ°μ μμ νμΈμ λͺ» νλ€λ§λ) safariμμ 0.01% μκ° μ°¨μ΄λ‘ μΈν΄ λλΉ‘μ΄λ κ²μ²λΌ 보μΈλ€.
μμ§ μ κ·Έλ°μ§ μμΈμ μ°Ύμ§ λͺ»νμμΌλ λΈλΌμ°μ λ§λ€ css μ λλ©μ΄μ
μ΄ λμνλ νλ μμ(fps)κ° λ¬λΌμ κ·Έλ° κ² μλκΉλΌκ³ μΆμΈ‘ μ€μ΄λ€.(Chromeμ μ½ 60fps, safariλ μ½ 30fps)