[JavaScript] DOM API - window, document, element ๊ฐ์ฒด

0

๊ณต๋ถ€๊ธฐ๋ก

๋ชฉ๋ก ๋ณด๊ธฐ
18/23

๐Ÿ“ ํฌ์ŠคํŒ… ๋ชฉ์ !

  • ๊ฐ ๊ฐ์ฒด๋งˆ๋‹ค ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋‹ค
  • cheatsheet ์ฒ˜๋Ÿผ ์ •๋ฆฌํ•ด๋†”์•ผ ๋‚˜์ค‘์— ์‚ฝ์งˆ์„ ๋œํ• ๊ฒƒ๊ฐ™๋‹ค!^^
  • ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ mdn ๋ฌธ์„œ ๋’ค์ง€๋ฉด์„œ ๊ทธ๋•Œ๊ทธ๋•Œ ๊ณ„์† ์—…๋ฐ์ดํŠธ ํ•ด์•ผํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ๋กœ ์‚ฌ์šฉํ•˜์ž๐Ÿ‘

1๏ธโƒฃ window ๊ฐ์ฒด

๐Ÿ“ MDN window ๊ฐ์ฒด ๋ฌธ์„œ
Window - Web APIs | MDN

  • .onload()
  • .close()
  • .setInerval(ํ•จ์ˆ˜, ์‹œ๊ฐ„), .setTimeout()
    • ์ฃผ์˜ ์‚ฌํ•ญ > ์š”์†Œ์— ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์ ์šฉ์‹œํ‚ฌ๋•Œ ์š”์†Œ.์†์„ฑ๊ฐ’(์ž„์˜๋กœ์ •ํ•œ) = ํ•จ์ˆ˜()
      ํ˜•ํƒœ๋กœ ํ•œ๋’ค clearTimeout(์š”์†Œ.์†์„ฑ๊ฐ’); ์œผ๋กœ ํ•ด์•ผ ์ž˜ ์ ์šฉ๋œ๋‹ค.!
    • ์•„๋ž˜์˜ ๊ฐ์ฒด์™€ ์†์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๊ฐ์ฒด๋กœ ์ž‘์—…ํ•˜๊ธฐ - JavaScript | MDN

  • setInterval (function() { ์‹คํ–‰์ฝ”๋“œ }, ms )
  • setTimeout( ํ•จ์ˆ˜, ์‹œ๊ฐ„)
  • clearTimeout(ํ•จ์ˆ˜์ด๋ฆ„)
  • .innerwidth : ์œˆ๋„์šฐ์˜ ๋‚ด๋ถ€ ๊ฐ€๋กœ์‚ฌ์ด์ฆˆ(px), ๊ฐ€๋กœ ์Šคํฌ๋กค๋ฐ”์˜ ๊ธธ์ด๋„ ํฌํ•จํ•œ๋‹ค. (๊ฐ€๋กœ์Šคํฌ๋กค์ด ์žˆ์„๊ฒฝ์šฐ)
  • .scrollTo( ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌ..)
    window.scrollTo({
        โ€˜behaviorโ€™ : โ€˜smoothโ€™,      //๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™ 
        โ€˜topโ€™ : xxx.offsetTop      // ํŠน์ •์˜์—ญ์˜ ์œ„์—์„œ์˜ ์ขŒํ‘œ๊ฐ’
    			//offsetTop์€ ์„ ํƒ๋œ ์˜์—ญ์˜ ์ƒ๋‹จ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ ˆ๋Œ€ ์ขŒํ‘œ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค
    })

2๏ธโƒฃ Document ๊ฐ์ฒด

๐Ÿ“ MDN - Document ๊ฐ์ฒด ๋ฌธ์„œ
Document - Web APIs | MDN

  • .getElementsById('')
  • .append()
  • create ๋ฉ”์†Œ๋“œ์—๋Š” DOM Element ์™€ node ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ชจ๋‘ ์žˆ์Œ
    • createElement(โ€™ํƒœ๊ทธโ€™)
    • createAttribute(โ€™์†์„ฑ')
    • createTextNode(โ€™๋ฐ์ดํ„ฐโ€™) : ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.
      • > DOM์—์„œ๋Š” element.innerTEXT
  • ์š”์†Œ ์ ‘๊ทผ ๋ฉ”์†Œ๋“œ
    • .getElementById()
    • .getElementsByClassName()
    • .getElementsByTagName()
    • .querySelector()
    • .querSelectorAll()

3๏ธโƒฃ Element ๊ฐ์ฒด (์š”์†Œ๊ฐ์ฒด)

  • event.target ๊ทธ๋ฆฌ๊ณ  event.currentTarget > ์ด๊ฒƒ๋„ ๊ฒฐ๊ตญ ์š”์†Œ
    • The read-onlyย target property of theย Event ย interface is a reference to the object onto which the event was dispatched. It is different fromย Event.currentTarget ย when the event handler is called during the bubbling or capturing phase of the event.
    • eventTarget ๊ณผ๋Š” ๋ฌด์Šจ์ฐจ์ด...?

๐Ÿ“ MDN - Element ๊ฐ์ฒด ๋ฌธ์„œ
Element - Web APIs | MDN

  • ์š”์†Œ ์ ‘๊ทผ ํ”„๋กœํผํ‹ฐ

    • .children : ์ž์‹ ๋…ธ๋“œ ์ค‘ ์š”์†Œ ๋…ธ๋“œ๋งŒ HTMLCollection๋กœ ๋ฐ˜ํ™˜(ํ…์ŠคํŠธ ๋…ธ๋“œ์ œ์™ธ)
    • .firstElementChild : ์ฒซ ๋ฒˆ์งธ ์ž์‹ ์š”์†Œ ๋…ธ๋“œ
    • .lastElementChild : ๋งˆ์ง€๋ง‰ ์ž์‹ ์š”์†Œ ๋…ธ๋“œ
    • .parentElement : ๋ถ€๋ชจ ์š”์†Œ ๋…ธ๋“œ
    • .previousElementSibling : ์ž์‹ ์˜ ์ด์ „ ํ˜•์ œ ์š”์†Œ ๋…ธ๋“œ
    • nextElementSibling ์ž์‹ ์˜ ๋‹ค์Œ ํ˜•์ œ ์š”์†Œ ๋…ธ๋“œ
  • .innerHTML, .innerText, .textContent

    1. innerHTML (ํƒœ๊ทธ์™€ ํ…์ŠคํŠธ ๋ชจ๋‘ ๊ทธ๋Œ€๋กœ ํ…์ŠคํŠธ๋กœ)
    2. innerText (ํƒœ๊ทธ(๋งˆํฌ์—…์–ธ์–ด,์Šคํƒ€์ผ๊นŒ์ง€)๋“ค์ด ์ ์šฉ๋œ ํ…์ŠคํŠธ๋กœ)
    3. textContent (ํƒœ๊ทธ๋Š” ์ œ๊ฑฐํ•˜๊ณ  ํ…์ŠคํŠธ๋งŒ ๊ณจ๋ผ์„œ)
  • .animate()

    xxx.animate({
    	//keyframes
    	marginLeft: ["0px", "1024px"]
    },{
    	//animation options
      duration: 500,
    	easeing: "ease",
    	interations: 1,
    	fill: "both"
    })
  • xxx.classList ()

    • ์„ ํƒ๋œ Element์˜ ํด๋ž˜์Šค๋ช…๋“ค์„ ๋ฐ˜ํ™˜
๋ฉ”์„œ๋“œ์„ค๋ช…
.add(ํด๋ž˜์Šค๋ช…)์„ ํƒ๋œ Element์— ํด๋ž˜์Šค๋ช… ์ถ”๊ฐ€
.remove(ํด๋ž˜์Šค๋ช…)์„ ํƒ๋œ Element์— ํด๋ž˜์Šค๋ช… ์‚ญ์ œ
.toggle(ํด๋ž˜์Šค๋ช…)์„ ํƒ๋œ Element์— ํด๋ž˜์Šค๋ช…์ด ์กด์žฌํ•˜๋ฉด ์‚ญ์ œํ•˜๊ณ , ์—†์œผ๋ฉด ์ถ”๊ฐ€
  • .className : ํด๋ž˜์Šค๋ช… (๋Œ€์ž…๋„ ๊ฐ€๋Šฅ)

    • ํด๋ž˜์Šค๋ช…์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ๋ชจ๋‘ ์ถœ๋ ฅํ•จ (์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํด๋ž˜์Šค๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ ์ฒซ๋ฒˆ์งธ ํด๋ž˜์Šค์˜ ๋ฌธ์ž์—ด ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•œ๋‹ค...)
    • li.className = "list-group"
  • .attributes

    • .attributes.name
    • .attributes.value
    • input ํƒœ๊ทธ๋Š” value ๊ฐ’์€ on(disabled ํ•œ๋‹ค๋ฉด off) ,checked ๊ฐ’์€ true or false
  • .addEventListener (โ€eventโ€, function(){})

    • ์„ ํƒ๋œ Element๊ฐ€ ์–ด๋– ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€์งˆ ๋•Œ ๋’ค์˜ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ
      document.getElementById("button").addEventListener("click", function(){
      	//button์ด ํด๋ฆญ๋  ๋•Œ
      	//ํ˜ธ์ถœ ๋  ํ•จ์ˆ˜
      	alert("button clicked")
      });
  • addEventListener์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž์— ๋“ค์–ด๊ฐˆ์ˆ˜์žˆ๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์ŠคํŠธ

์ž์ฃผ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ์„ค๋ช…
clickํด๋ฆญ ์‹œ (๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์—์„œ ์†๊ฐ€๋ฝ์„ ๋• ์ˆœ๊ฐ„)
mouseenter๋งˆ์šฐ์ˆ˜๋ฅผ ์š”์†Œ ์œ„์— ์˜ฌ๋ฆฌ๋ฉด
mouseover๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ ์œ„์— ์˜ฌ๋ฆฌ๋ฉด (์ž์‹ Element๋„ ์˜ํ–ฅ์„ ๋ฐ›์Œ)
mouseout๋งˆ์šฐ์Šค๊ฐ€ ์š”์†Œ ๋ฐ–์œผ๋กœ ๋ฒ—์–ด๋‚  ๋•Œ
mousedownํด๋ฆญ ํ•˜๊ณ  ๋ฒ„ํŠผ์—์„œ ์†๊ฐ€๋ฝ์„ ๋•Œ๊ธฐ ์ „
focusํฌ์ปค์Šค๊ฐ€ ๊ฐ”์„ ๋•Œ
keypressํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„์— ๋ฐœ์ƒ, ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๋ฅด๊ณ  ์žˆ๋Š” ๋™์•ˆ ๊ณ„์† ๋ฐœ์ƒ
keydownํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ
keyupํ‚ค๋ฅผ ๋ˆŒ๋ €๋‹ค๊ฐ€ ๋–ผ๋Š” ์ˆœ๊ฐ„
load์›น ํŽ˜์ด์ง€ ์†Œ์Šค๊ฐ€ ๋‹ค์šด๋กœ๋“œ ๋˜์—ˆ์„ ๋•Œ
resize์ฐฝํฌ๊ธฐ๋ฅผ ์กฐ์ ˆ ํ•  ๋•Œ
scroll์Šคํฌ๋กค๋ฐ”, ๋งˆ์šฐ์Šค ํœ , up, down ๋ฒ„ํŠผ์œผ๋กœ ์Šคํฌ๋กค ํ•  ์‹œ
unload๋งํฌ๋ฅผ ํด๋ฆญํ•ด์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ๋‹ซ์•˜์„ ๋•Œ
changeform ํ•„๋“œ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๋•Œ

profile
UX์— ๊ด€์‹ฌ๋งŽ์€ ํ”„๋ก ํŠธ ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค:)

0๊ฐœ์˜ ๋Œ“๊ธ€