[Front-end๐Ÿฆ] #15 ๋ฒค๋”ฉ๋จธ์‹  ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„ ํ”„๋กœ์ ํŠธ

๋˜์ƒยท2021๋…„ 11์›” 18์ผ
0

front-end

๋ชฉ๋ก ๋ณด๊ธฐ
25/58
post-thumbnail

1. Animation

๋ฌธ์ž์—ด์„ ๊ธ€์ž๋ณ„๋กœ ์ž๋ฅธ ๋’ค ์ž…์ฒด์ ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค. ๋ฌธ์ž์—ด์„ ์ž๋ฅด๊ธฐ ์œ„ํ•ด ๊ฐ€์ ธ์˜จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๊ทผ๋ฐ ๋‹จ์–ด๋ณ„์ด ์•„๋‹ˆ๋ผ ๊ธ€์ž๋ณ„์ด๋ผ์„œ ์กฐ๊ธˆ ์•„์‰ฌ์› ๋‹ค. js ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ”๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ... ๋ด๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด์„œ..... --์œผ๋กœ ์ˆซ์ž์— ๊ตฌ๋ถ„์„ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ, ๋‚˜์ค‘์— ๋‹จ์–ด ๋‹จ์œ„๋กœ ๊ตฌํ˜„๋„ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.




2. Vending Machine

  • input ๊ฐ™์€ ๊ฒƒ font-size ์•ˆ๋ฐ›๋Š”๊ฑฐ default๊ฐ€ inherit ์œผ๋กœ ์•ˆ๋˜์–ด ์žˆ์–ด์„œ ๊ทธ๋Ÿผ... reset์— inherit์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.

  • js ๋Š” ๋ชจ๋ฅด์ง€๋งŒ js ์–ธ๊ธ‰์„ ๋งŽ์ด ๋“ฃ๋‹ค๋ณด๋‹ˆ ๊ฐ€์ƒ์š”์†Œ๋ฅผ ์•ˆ์“ฐ๊ณ  on off ํ–ˆ์„๋•Œ ์“ฐ๋ฉด ๋˜๊ฒ ๋‹ค ์‹ถ์–ด์„œ ๋ฒ„ํŠผ ์œ„์— sold-out class ๋ฅผ ์ค˜์„œ back-sold-out ์ด sold-out ์ด๋ฉด ๋‚˜ํƒ€๋‚˜๊ณ  ์•„๋‹ˆ๋ฉด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ฒŒ ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค. ์ง€๊ธˆ์€ ๋ชปํ•˜๊ณ  ๋‚˜์ค‘์—...

<li class="sold-out">
    <div class="back-sold-out">
    	<img src="resource/img/Sold-out.png" alt="">
	</div>
    ๋ฒ„ํŠผ์–ด์ฉŒ๊ณ ~~
  • ํฌ๋กฌ์˜ ์ตœ์†Œ ํฐํŠธ ์‚ฌ์ด์ฆˆ๋Š” 10px

  • ๋ฒ„ํŠผ ์•ˆ์˜ ์š”์†Œ๋“ค์€ ์œ„์•„๋ž˜ ์ „๋ถ€ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์ด ์ž๋™์œผ๋กœ ๋œ๋‹ค!!!

  • flex๋กœ ์žก์„ ๋•Œ width, flex-basis, flex-grow ... ๋“ฑ ๋‹จ์œ„๋ฅผ ์ค„ ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜๋กœ ํ†ต์ผํ•˜์ž!!! ์—ฌ๋Ÿฌ๊ฐ€์ง€๋กœ ์ฃผ๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ฌ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.




3. JS Challenge

js์˜ ํ•ต์‹ฌ์€ HTML์„ interactive ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ.

HTML์— ์ ์šฉํ•˜๊ธฐ ๐Ÿงฎ

document // HTML์„ ๊ฐ€๋ฆฌํ‚ค๋Š” Object
document.title = "hi";
//
const title = document.getElementById("title");
document.dir(title); // element๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋“ค์„ ์žก์•„์˜ด. ex) onClick, onDrag ...
title.innerText = "text"; // h1 ๋‚ด์šฉ ๋ฐ”๋€๋‹ค.
//
const title = document.getElementsByClassName("hello");
const title = document.getElementsByTagName("h1");
const title = document.querySelector(".hello h1:first-child"); // CSS selector ๋ฌธ๋ฒ•์— ํ•ด๋‹นํ•˜๋Š” ์ฒซ๋ฒˆ์งธ ๊ฒƒ ๋”ฑ ํ•˜๋‚˜๋งŒ ์žก์•„์˜ด.
const title = document.querySelectorAll(".hello h1"); // ์ „๋ถ€ list๋กœ ์žก์•„์˜ด.
//
// style ์„ js๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
title.style.color = "blue";
<div class="hello">
	<h1 class="hello" id="title">Grab me!</h1>
	<h1 class="hello">Grab me!</h1>
	<h1>Grab me!</h1>
</div>

Event ๐Ÿฅณ
๋ฐฉ๋ฒ•1. addEventListener ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

// ์–ด๋–ค event๋ฅผ ๊ฐ์ง€ํ•  ์ง€, event๊ฐ€ ๊ฐ์ง€๋์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜.
// event๋Š” ์ข…๋ฅ˜๊ฐ€ ๋งŽ์œผ๋‹ˆ๊นŒ ์ฐพ์•„์„œ ์“ฐ์ž. click, mouseenter, mouseleave, ...
function handleTitleClick() {
    title.style.color = "green";
}
title.addEventListener("click", handleTitleClick);
//
function handelWindowResize() {
    // body ๋Š” ํŠน๋ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— document.body๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, div, h1 ๊ฐ™์€ ๊ฒƒ์€ ์•ˆ๋จ. ์œ„์—์„œ ์‚ฌ์šฉํ•œ get~~ or querySelector ์ด์šฉํ•˜์ž.
    document.body.style.backgroundColor = "tomato";
}
window.addEventListener("resize", handleWindowResize);

๋ฐฉ๋ฒ•2. onEvent ๋ถ™์ด๊ธฐ

title.onclick = handleTitleClick;

addEventLisnter๋Š” iOS addTapGestureRecognizer ์™€ ์ด๋ฆ„๋งŒ ๋‹ค๋ฅด๊ณ  ๊ฐ™๋‹ค!!




4. ๋Š๋‚€์ 

  • ํ™•์‹คํžˆ ๋‚ด๊ณต์ด ๋ถ™๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์กฐ๊ธˆ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์ง์ ‘ ํ•ด๋ณด๋‹ˆ๊นŒ ๋ฒ„๋ฒ…๋ฒ„๋ฒ„๋ฒ… ๋ฒ„๋ฒ… ๊ฑฐ๋ฆฌ๋Š” ๋‚˜ ์ž์‹ ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๊ฐ™์€ ์ˆ˜๊ฐ•์ƒ์ธ ๊ฒฝํ—˜์ž ๋ถ„์€ ๋‚ด 1/2 ์‹œ๊ฐ„๋งŒ์œผ๋กœ ๊ตฌํ˜„์„ ๋๋‚ด์‹œ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์ถฉ๊ฒฉ ๋จน์—ˆ๋‹ค. ์ด๊ฒƒ์€... ์—ฐ์Šต์ด ๋‹ต์ด๋‹ค.
  • ๊ทธ๋ž˜๋„ ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ ์—†์ด ๋ฏธ๋””์–ด์ฟผ๋ฆฌ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋‹ค! BEM๊ณผ ๋‹ค๋ฅธ ๊ตฌ์กฐ ๊ณ ๋ฏผํ•˜๋Š” ์ง€๊ธˆ๋„ ๊ณ ๋ฏผ์ธ๋ฐ... js ์ตœ์ ํ™”๊นŒ์ง€ ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์งค๋ ค๋ฉด ์–ผ๋งˆ๋‚˜ ๋” ๊ณ ๋ฏผํ•ด์•ผ ํ•  ์ง€ ๊ฐ๋„ ์•ˆ์˜จ๋‹ค. ์ผ๋‹จ js ๋ฌธ๋ฒ•๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฟŒ์ˆ˜์ž!
  • js๋Š” ๋ฌธ๋ฒ•์ด ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์–ธ์–ด ์งฌ๋ฝ•ํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ฆฐ๋‹ค... js๊ฐ€ C๋ฅผ ์ฐจ์šฉํ•˜๊ณ  ๋‹ค์‹œ ํŒŒ์ด์ฌ์ด๋ž‘ ์Šค์œ„ํ”„ํŠธ๊ฐ€ js๋ฅผ ์ฐจ์šฉํ•œ๊ฑฐ๊ฒ ์ง€๋งŒ.. ๊ทธ ๋‘๊ฐœ๋ฅผ ๋จผ์ € ๋ฐฐ์šฐ๊ณ  ๋ฐฐ์šฐ๋‹ˆ๊นŒ ์™€... ์ด๊ฒŒ ๋ฌด์Šจ...? ๋‚ด๊ฐ€ js๋กœ ์ฝ”ํ…Œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค...
profile
0๋…„์ฐจ iOS ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

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