π‘ μ΄λ² μ£Όμλ
DOM
μ λν΄ μμ보μμΌλ©° μ΄λ²€νΈ ν¨μμ νμ΄λ¨Έ ν¨μμ λν΄μλ λ°°μ λ€. λν λ°°μ΄ λ΄μ©μ μ μ©νμ¬ Scroll To Top λ²νΌκ³Ό μν μ¬λΌμ΄λλ₯Ό ꡬνν΄λ³΄λ μ€μ΅μ νμλ€.
β DOM : HTML λ¬Έμμ λν μΈν°νμ΄μ€
βͺ μ²«μ§Έλ‘ λ·° ν¬νΈμ 무μμ λ λλ§ ν μ§ κ²°μ νκΈ° μν΄ μ¬μ©λλ€.
βͺ λμ§Έλ‘λ νμ΄μ§μ μ½ν
μΈ λ° κ΅¬μ‘°, κ·Έλ¦¬κ³ μ€νμΌμ΄ μλ°μ€ν¬λ¦½νΈ νλ‘κ·Έλ¨μ μν΄ μμ λκΈ° μν΄ μ¬μ©λλ€.
βͺ DOMμ λ¬Έμλ₯Ό λ
Όλ¦¬ νΈλ¦¬λ‘ νννλ€. νΈλ¦¬μ κ° λΈλμΉλ λ
Έλμμ λλλ©°, κ° λ
Έλλ κ°μ²΄λ₯Ό κ°λλ€.
-> λ
Έλ : μ΄λ²€νΈ μ²λ¦¬κΈ°λ ν¬ν¨ν μ μλ€. μ΄λ²€νΈκ° λ°μν μκ°, ν΄λΉ μ΄λ²€νΈμ μ°κ²°ν μ²λ¦¬κΈ°κ° λ°λνλ€.
πDOMμ μλ³Έ HTML λ¬Έμ ννμ λΉμ·νμ§λ§ λ€μκ³Ό κ°μ μ°¨μ΄μ μ΄ μλ€.
1. νμ μ ν¨ν HTML νμμ΄λ€.
2. μλ°μ€ν¬λ¦½νΈμ μμ λ μ μλ λμ λͺ¨λΈμ΄μ΄μΌ νλ€.
3. κ°μ μμλ₯Ό ν¬ν¨νμ§ μλλ€. (Ex. ::after)
4. 보μ΄μ§ μλ μμλ₯Ό ν¬ν¨νλ€. (Ex. display: none)
β HTML μμμ λ
Έλ κ°μ²΄
HTML μμλ HTML λ¬Έμλ₯Ό ꡬμ±νλ κ°λ³μ μΈ μμλ₯Ό μλ―Ένλ€.
-> HTML μμλ λΈλΌμ°μ μ λ λλ§ μμ§μ μν΄ νμ±λμ΄ DOMμ ꡬμ±νλ μμ λ
Έλ κ°μ²΄λ‘ λ³νλλ€. μ΄λ HTML μμμ attributeλ attribute nodeλ‘, HTML μμμ text μ½ν
μΈ λ text nodeλ‘ λ³νλλ€.
β μμ λ
Έλ μ·¨λ
HTMLμ ꡬ쑰λ λ΄μ© λλ μ€νμΌ λ±μ λμ μΌλ‘ μ‘°μνλ €λ©΄ js νμΌμμ λ¨Όμ μμ λ
Έλλ₯Ό μ·¨λν΄μΌ νλ€.
πDOMμμ μμ λ
Έλλ₯Ό μ·¨λν μ μλ λ€μν λ©μλ
βͺ getElementById
: idλ₯Ό μ΄μ©ν μμ λ
Έλ μ·¨λ
// id μ΄λ¦μ΄ slide1μΈ μμ λ
Έλλ₯Ό νμνμ¬ λ°ν
const $elem = document.getElementById('slide1')
βͺ getElementsByTagName
: νκ·Έμ΄λ¦μ μ΄μ©ν μμ λ
Έλ μ·¨λ
// νκ·Έ μ΄λ¦μ΄ liμΈ μμ λ
Έλλ₯Ό λͺ¨λ νμνμ¬ λ°ν
const $elems = document.getElementsByTagName('li')
βͺ getElementsByClassName
: classλ₯Ό μ΄μ©ν μμ λ
Έλ μ·¨λ
// class μ΄λ¦μ΄ btnμΈ λͺ¨λ λ
Έλλ₯Ό νμνμ¬ κ°μ²΄μ λ΄μ λ°ν
const $elems = document.getElementsByClassName('btn')
βͺ queryquerySelector
: CSS μ νμλ₯Ό μ΄μ©ν μμ λ
Έλ μ·¨λ
// class μ΄λ¦μ΄ scrollToTopμΈ μμλ₯Ό νμνμ¬ λ°ν
const scrollToTopEl = document.querySelector('.scrollToTop')
// id μ΄λ¦μ΄ slide1μΈ μμλ₯Ό νμνμ¬ λ°ν
const firstSlide = document.querySelector('#slide1')
βͺ querySelectorAll
: CSS μ νμλ₯Ό μ΄μ©ν λͺ¨λ μμ λ
Έλ μ·¨λ
// ul μμμ μμ μμμΈ li μμλ₯Ό λͺ¨λ νμνμ¬ λ°ν
const $elems = document.querySelectorAll('ul > li');
β DOM μ‘°μ
βͺ innerHTML
νλ‘νΌν° : μμ λ
Έλμ HTML
λ§ν¬μ
μ μ·¨λνκ±°λ λ³κ²½νλ€.
βͺ insertAdjacentHTML
λ©μλ : κΈ°μ‘΄ μμλ₯Ό μ κ±°νμ§ μμΌλ©΄μ μμΉλ₯Ό μ§μ ν΄ μλ‘μ΄ μμλ₯Ό μ½μ
νλ€.
βͺ createElement
λ‘ μμ λ
Έλλ₯Ό μμ±, createTextNode
λ‘ ν
μ€νΈ λ
Έλλ₯Ό μμ±νκ³ appendChild
λ©μλλ₯Ό μ¬μ©νμ¬ μμ λ
Έλλ₯Ό DOM
μ μΆκ°νλ€.
βͺ insertBefore(newNode, childNode)
λ©μλ : childNode μμ newNodeλ₯Ό μ½μ
νλ€.
βͺ cloneNode([deep: true | false])
λ©μλ : λ
Έλμ μ¬λ³Έμ μμ±νμ¬ λ°ννλ€.
βͺ replaceChild(newChild, oldChild)
λ©μλ : oldChildλ₯Ό newChildλ‘ λ체νλ€.
βͺ removeChild(child)
λ©μλ : μΈμλ‘ μ λ¬ν childλ₯Ό μμ νλ€.
βͺ style
λ‘ μΈλΌμΈ μ€νμΌμ μ‘°μνλ€.
βͺ className
νλ‘νΌν° : HTML
μμμ class
κ°μ μ·¨λνκ±°λ λ³κ²½νλ€.
βͺ classList
νλ‘νΌν° : class
μ 보λ₯Ό λ΄μ κ°μ²΄λ₯Ό λ°ννλ€.
β μ΄λ²€νΈ
λΈλΌμ°μ λ ν΄λ¦, ν€λ³΄λ μ
λ ₯, λ§μ°μ€ μ΄λ λ±κ³Ό κ°μ μ¬κ±΄μ΄ λ°μνλ©΄ μ΄λ₯Ό κ°μ§νμ¬ μ΄λ²€νΈλ₯Ό λ°μμν¨λ€.
βͺ μ΄λ²€νΈ νμ
β νμ΄λ¨Έ ν¨μ
ν¨μλ₯Ό μΌμ μκ°μ΄ μ§λ μ΄νμ νΈμΆνκ³ μΆμ λ νμ΄λ¨Έ ν¨μλ₯Ό μ¬μ©νλ€.
βͺ μλ°μ€ν¬λ¦½νΈμ νμ΄λ¨Έ ν¨μμλ setTimeout
κ³Ό setInterval
(κ·Έλ¦¬κ³ μ΄ λμ μ κ±°ν μ μλ clearTimeout
κ³Ό clearInterval
)μ΄ μλ€.
πsetTimeout
κ³Ό setInterval
μ μ°¨μ΄λ ν¨μ νΈμΆμ λ°λ³΅μ μλ€.
setTimeout ν¨μκ° μμ±ν νμ΄λ¨Έλ λ¨ ν λ² λμ, setInterval ν¨μκ° μμ±ν ν¨μλ λ°λ³΅ λμνλ€.
βͺ setTimeout
μμ
// 첫λ²μ§Έ νλΌλ―Έν°: νμ΄λ¨Έκ° λ§λ£λ μ΄ν νΈμΆνλ μ½λ°± ν¨μ
// λλ²μ§Έ νλΌλ―Έν°: νμ΄λ¨Έ λ§λ£ μκ°
// μΈλ²μ§Έ(μ΄μ) νλΌλ―Έν°:
// νΈμΆ μ€μΌμ€λ§ν μ½λ°± ν¨μμ μ λ¬ν΄μΌ ν μΈμκ° μ‘΄μ¬νλ€λ©΄ μΈλ²μ§Έ μ΄νμ μΈμλ‘ μ λ¬
setTimeout(() => console.log('1μ΄κ° μ§λ¬λ€'), 1000)
βͺ setInterval
, clearInterval
μμ
let count = 0;
// setInterval ν¨μμ νλΌλ―Έν°λ setTimeoutκ³Ό λμΌ
const countToFive = setInterval(() => {
count++;
// console.log(count);
// countκ°μ΄ 5κ° λλ©΄ ν¨μ μ€μΌμ€λ§μ μ·¨μ
if (count === 5) clearInterval(countToFive);
}, 1000);
Scroll To Top
λ²νΌ νλ‘μ νΈμ μ μ©ν΄λ³΄κΈ°
: μ΄λ² μ£Όμ μ€μ΅ν΄λ³Έ Scroll To Top
λ²νΌμ νλ‘μ νΈμ μ μ©ν΄λ΄€λ€. cssμμλ λ²νΌμ΄ 보μ΄μ§ μλλ‘ display: none;
μ νμκ³ μΉ νμ΄μ§μ νΉμ μμΉμμλΆν°λ λ²νΌμ΄ λνλλλ‘ νκ³ λ²νΌμ λλ μ λ νμ΄μ§κ° μλ¨μΌλ‘ μ΄λνλλ‘ νκΈ° μν΄ jsμμ μ΄λ²€νΈλ₯Ό μΆκ°νμλ€.
νμμ λ€μν μΉ νμ΄μ§λ₯Ό μ μνλ©΄μ μμ£Ό μ¬μ©ν΄λ³΄μλ Scroll To Top
λ²νΌμ λ΄ ν΄λ‘ μ½λ© μ¬μ΄νΈμ μ μ©ν΄λ³Ό μ μμ΄μ μ’μλ€. μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λν κ°λ
μ μΈ λΆλΆμ μ€κ°κ³ μ¬ μ΄νλΆν° κ³μ μ ν΄μλλ° μ΄λ₯Ό μ§μ ν΄λ‘ μ½λ©νλλ° μ¨λ³Έμ μ΄ λ§μ§ μμμ Scroll To Top
λ²νΌμ ꡬνν΄λ΄λκ² μ½μ§ μμκ³ μκ°λ κ½€ κ±Έλ Έλ€. μμΌλ‘ λ¨μ μκ°λμ νλ‘μ νΈλ₯Ό μ€λΉνλ©΄μ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ νμ©ν μ½λλ₯Ό κ³μ μ¨λ³΄λ©° κ°λ
λ λͺ
νν νκ³ μ΅μν΄μ§λλ‘ λ
Έλ ₯ν΄μΌκ² λ€. νμ΄λ¨Έ ν¨μμ μν μ¬λΌμ΄λ λ§λλ μ€μ΅λ μμ
μκ°μ μ΄ν΄λ³Έ λ΄μ©μΈλ° μ΄λ² μ£Όμλ μκ°μ΄ λΆμ‘±νμ¬ λ΄ ν΄λ‘ μ½λ© μ¬μ΄νΈμ μ§μ μ μ©ν΄λ³΄μ§ λͺ»ν μ μ΄ μμ½λ€. μ΄μ κΈ°λ§κ³ μ¬κ° μΌλ§ λ¨μ§ μμλλ° νλ‘μ νΈλ₯Ό μ μμ±μμΌμ μ μΆν μ μμμ§ κ±±μ μ΄ λλ€. μν¬λ¦¬ μκ°μ μ νμ©ν΄μΌ κ² λ€:-)