๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

javascript๐Ÿช“28

์•ต๊ทค๋Ÿฌ ์ด๋ฒคํŠธ ์ „ํŒŒ ๋ง‰๊ธฐ ํ•œ ์˜์—ญ ํด๋ฆญ์‹œ ๋ชจ๋‹ฌ์ด 2๊ฐœ ๋œฐ๋•Œ (๋นˆ๋ถ€๋ถ„ ์˜์—ญ ํด๋ฆญ๊ณผ / ๋ฒ„ํŠผํด๋ฆญ์‹œ ๋‚˜์˜ค๋Š” ๋ชจ๋‹ฌ์ด ๋‹ค๋ฆ„) e.stopPropagation() ๊ณผ toPromise(); ๋กœ ์ด๋ฒคํŠธ ์ „ํŒŒ ๋ง‰๊ธฐ ๊ฐ€๋Šฅ async openScheduleModal(e: Event) { e.stopPropagation() const dialogRef = this.dialog.open(ScheduleDetailModalComponent, { panelClass: ['reed-modal', 'schedule-detail-panel'], autoFocus: false, }); const closeRes = await dialogRef.afterClosed().toPromise(); } async openScheduleWriteModal() { cons.. 2023. 11. 22.
๋“œ๋กญ๋‹ค์šด ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ์‹œ ํ•˜์œ„์นดํ…Œ๊ณ ๋ฆฌ (์•ต๊ทค๋Ÿฌ) ๋Œ€๋ถ„๋ฅ˜ ์นดํ…Œ๊ณ ๋ฆฌ ๋งŒ๋“ค๊ธฐ categoryList ๋ณ€์ˆ˜์•ˆ์— 2์ค‘ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. categoryList = [ { category : 'IT', children : [ {name: '๊ธฐํš'}, {name: '๋””์ž์ธ'}, {name: '๊ฐœ๋ฐœ'}, {name: '๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค'}, {name: '๋งˆ์ผ€ํŒ…'}, ], }, { category : '์–ดํ•™', children : [ {name: 'ํšŒํ™”'}, {name: '์ž‘๋ฌธ'}, {name: '์ž๊ฒฉ์ฆ'}, {name: '์–ธ์–ด๊ตํ™˜'}, ], }, ] for๋ฌธ์„ ๋Œ๋ฆด ์œ„์น˜์— ๋ฐฐ์—ด์„ ๋งŒ๋“  categoryList ๋ฅผ categorylistbig ์œผ๋กœ ๋ฐ›์•„์™€ ๋Œ€๋ถ„๋ฅ˜์ธ category์— ์ ‘๊ทผ {{categorylistbig.category}} ์ด๋•Œ ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด ํด๋ฆญ์‹œ ํ•ด๋‹น.. 2023. 11. 22.
Animate.css ํ™œ์šฉ fadeInํšจ๊ณผ ๊ฑธ๊ธฐ ๊ธฐ์กด ์ œ์ด์ฟผ๋ฆฌ๋กœ fade - in, out ์„ ๊ฑธ์—ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ , animate ์‚ฌ์ดํŠธ์— ๋‚˜์˜จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•ด ํšจ๊ณผ์ฃผ๊ธฐ text ๋ฅผ ํŽ˜์ด๋“œ์ธ ์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค https://animate.style/ ์ ์šฉ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€ install ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ CDN ๋กœ ๋งํฌ์‚ฝ์ž… ์ž‘์„ฑ์ค‘์ธ html.index ํŒŒ์ผ์— link ํƒœ๊ทธ๋กœ CDN ๋ฐฉ์‹ ์ถ”๊ฐ€ ์‚ฌ์ดํŠธ ์•ˆ๋‚ด๋ฅผ ๋ณด๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝ์—๋„ ์ ์šฉ //ํ…์ŠคํŠธ๋ฐ•์Šค ์—๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ const currentSlice = slides[currentIndex]; const textBox = currentSlice.querySelector('.text-box'); textBox.classList.add('animate__animated', 'animate__fadeIn'); /.. 2023. 10. 23.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์Šฌ๋ผ์ด๋“œ ์ธ๋””์ผ€์ดํ„ฐ indicator ๊ตฌํ˜„ํ•˜๊ธฐ (active or forEach) ์•„๋ž˜์— indecator ์š”์†Œ๋ฅผ ๋„ฃ์–ด ํ•˜๋‚˜ ์„ ํƒ์‹œ ์ƒํƒœ๊ฐ’์ด ๋ฐ”๋€Œ๊ฒŒ ํ•œ๋‹ค. ์˜ˆ์‹œ๋กœ ๋นจ๊ฐ›๊ฒŒ ์ƒ‰์ด ๋ฐ”๋€Œ๊ฒŒ ์ ์šฉ ๊ธฐ๋ณธ html ์ฝ”๋“œ๋ฅผ ์ ์–ด์ค€ํ›„ scss๋กœ ์ž๋ฆฌ์žก์•„์ฃผ๊ธฐ &.active ๋กœ ์ƒ‰์ƒ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ css ์š”์†Œ์— ์ ‘๊ทผํ•œ๋‹ค .slide_pagination { @include flex-row(); gap: 15px; position: absolute; left: 50%; bottom: 50px; transform: translateX(-50%); li { width: 7px; height: 7px; border-radius: 50%; background-color: #fff; &.active { background-color: red; } } } ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์š”์†Œ ์„ ํƒ //์ธ๋””์ผ€์ดํ„ฐ ์š”์†Œ ์„ .. 2023. 10. 23.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž๋™ ์Šฌ๋ผ์ด๋“œ ๊ตฌํ˜„ํ•˜๊ธฐ (querySelector / setInterval) copy ์‚ฌ์ดํŠธ hb paper html / css ์˜์—ญ display flex ๋ฅผ ์ด์šฉ ์Šฌ๋ผ์ด๋“œ ๋ฐ•์Šค์•ˆ์— ์Šฌ๋ผ์ด๋“œ๋“ค์„ ๋ฐฐ์น˜ํ•ด ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ํ•ด์ค€๋‹ค ์ „์ฒด ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ค์–ด overflow:hidden ์„ ์‚ฌ์šฉํ•ด ์Šฌ๋ผ์ด๋“œ ์˜์—ญ์„ ๊ฐ€๋ ค์ฃผ๊ณ  ์œˆ๋„์šฐ ์ฐฝ์— ๊ฝ‰ ์ฐจ๊ฒŒ ๋ฐฐ์น˜ html ๊ทธ ์†Œ์ค‘ํ•œ ๊ฐ€์น˜๋ฅผ ์•Œ๊ธฐ์— ์šฐ๋ฆฌ๋Š” ๋Œ์•„๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž์—ฐ์œผ๋กœ, ์Šค๋งˆํŠธํ•˜๊ฒŒ ๊ทธ ์†Œ์ค‘ํ•œ ๊ฐ€์น˜๋ฅผ ์•Œ๊ธฐ์— ์šฐ๋ฆฌ๋Š” ๋Œ์•„๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2 ๊ทธ ์†Œ์ค‘ํ•œ ๊ฐ€์น˜๋ฅผ ์•Œ๊ธฐ์— ์šฐ๋ฆฌ๋Š” ๋Œ์•„๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 3 css .main-slide { width: 100%; height: 100%; overflow: hidden; position: fixed; .slide-box { height: 100%; width: 100%; display: flex; position: re.. 2023. 10. 18.
function ์ด๋ž€? function? -ํ”„๋กœ๊ทธ๋žจ์„ ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ building block -subprogram ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค -ํ•œ๊ฐ€์ง€์˜ ์ž‘์—…์ด๋‚˜ ์–ด๋–ค๊ฐ’(value)์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์ž„ ์‚ฌ์šฉ๋ฒ• function ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ1, ํŒŒ๋ผ๋ฏธํ„ฐ2) { ๋‚ด์šฉ } ๋ฆฌํ„ด; ํ•˜๋‚˜์˜ function์€ === ํ•œ๊ฐ€์ง€์ผ๋งŒ ํ•œ๋‹ค. ํ•จ์ˆ˜์ด๋ฆ„ ์ž‘์„ฑ๋ฒ• ๋ณ€์ˆ˜๋Š” ๋ช…์‚ฌ๋กœ ํ•จ์ˆ˜๋Š” ๋™์‚ฌ๋กœ (doSomething) ํ•จ์ˆ˜๋Š” object ์ด๋‹ค. 1. ๋ณ€์ˆ˜์— ํ• ๋‹น์ด 2. function ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ 3. ๋ฆฌํ„ด๊ฐ’์œผ๋กœ๋„ ๋ฆฌํ„ด 1. function function ์œผ๋กœ printHelloํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. function printHello() { console.log('hello'); } printHello(); 2. .. 2023. 9. 5.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž : || (or) $$ (and) !(not) 6. logical(๋…ผ๋ฆฌ) operators : || (or) $$ (and) !(not) 1. or : 3์ค‘์— 1๊ฐœ ๋ผ๋„ true ๋ฉด true ๋ฆฌํ„ด const value1 = false; const value2 = 4 < 2; // 4๊ฐ€ 2๋ณด๋‹ค ์ž‘๋‹ค? ํ‹€๋ฆฌ๋ฏ€๋กœ false console.log(`or: ${value1 || value2 || check()}`); //์—ฌ๊ธฐ์„œ check ํ•จ์ˆ˜๋Š” ๋ฆฌํ„ด๊ฐ’์ธ true๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. //value1 or value2 or check ์ค‘ ํ•˜๋‚˜๋ผ๋„ true ๋ผ๋ฉด true๋กœ ๊ณ„์‚ฐ์ด ๋˜๋Š” ์—ฐ์‚ฐ์ž function check() { for (let i = 0; i < 10; i++) { //์‹œ๊ฐ„์„ ์žก์•„๋จน์ง€๋งŒ ๊ฒฐ๊ตญ ๋ฆฌํ„ด๊ฐ’์ธ true ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค˜ console.log('๐Ÿคฌ'); }.. 2023. 8. 30.
๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐฉ๋ฒ• variable types (primitive or object) primitive > single item : numver, string, boolean , null , undefined , symbol object > box container (์ผ์ƒ์ƒํ™œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๊ฑด ๋ฌผ์ฒด๋“ฑ์„ ๋Œ€ํ‘œํ•˜๋Š” ๋ฐ•์Šคํ˜•ํƒœ) primitive ํƒ€์ž…๊ณผ object ์˜ ํƒ€์ž…์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ํ˜•ํƒœ primitive type let name = 'ellie'; // name์ด๋ž€ ๋ณ€์ˆ˜์— ellie ์„ ์–ธ name = 'hello'; // ๋ณ€์ˆ˜ ์žฌํ• ๋‹น console.log('name: ', name); // name = hello ๊ฐ€๋จ ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋จ object type const ellie = { name: 'ellie', age: 20 }; //์ด ellie ๋Š” const ๋กœ ์ง€์ •.. 2023. 8. 29.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜์„ ์–ธ : let vs var / const variavle ๋ณ€์ˆ˜ > ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ’ - read / write = ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์“ฐ๊ณ  ์ฝ๋Š”๊ฒƒ ๊ฐ€๋Šฅ - ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์žฌ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณ€์ˆ˜์˜ global scope ์™€ block scope let ์˜ global scope - ์‹คํ–‰์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ let name = 'ellie'; // name์ด๋ž€ ๋ณ€์ˆ˜์— ellie ์„ ์–ธ name = 'hello'; // ๋ณ€์ˆ˜name์— hello ์žฌํ• ๋‹น console.log('name: ', name); // ํ™•์ธ์‹œ name = hello ๊ฐ€๋จ let ์˜ block scope {} - ๋ธ”๋Ÿญ์•ˆ์˜ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ ๋ธ”๋Ÿญ๋ฐ–์—์„  ๋ธ”๋Ÿญ์•ˆ์˜ ๋‚ด์šฉ์„ ์ฝ์ง€๋ชปํ•จ (๋ธ”๋Ÿญ๋ฐ–์—์„œ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋“ค์€ global scope ๋กœ ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ) { let name2 .. 2023. 8. 29.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ์‹œ .์€ ๋ฌด์—‡์„ ๋œปํ• ๊นŒ ? . ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ ‘๊ทผ ์—ฐ์‚ฐ์ž์ด๋‹ค. ์ฆ‰ ์•„๋ž˜ ๋ช…๋ น์–ด๋Š” console.log('์ ‘๊ทผ์—ฐ์‚ฐ์ž๋ž€?'); console์•ˆ์— . ์œผ๋กœ log ์— ์ ‘๊ทผํ•œ๋‹ค ๋ผ๊ณ  ํ•ด์„๋œ๋‹ค. 2023. 4. 6.
onclick ์ด๋ฒคํŠธ์™€ getElementById ํ•จ์ˆ˜ ์‹ค์Šต ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ํ–‰์œ„ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์‹คํ–‰๋ฌธ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ next ๋ฒ„ํŠผ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์Œ์œผ๋กœ, prev ๋ฒ„ํŠผํด๋ฆญ์‹œ ์ด๋ฏธ์ง€๊ฐ€ ์ด์ „์œผ๋กœ html ๋กœ ๋ฐ”๋กœ ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด ์‹คํ–‰์‹œ์ผœ๋ณด์ž. button ์— ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด return ํ•จ์ˆ˜๋กœ next, prev ํ•จ์ˆ˜๋ช…์„ ๊ฐ๊ฐ ์‹คํ–‰์‹œํ‚ค์ž. ์Šคํฌ๋ฆฝํŠธ ๋ฌธ์— ํ•จ์ˆ˜ ์ž…๋ ฅ // ๋ณ€์ˆ˜์„ค์ • var num = 1; /* ํ•จ์ˆ˜ next()์„ค์ • 1. ๋ณ€์ˆ˜ num์ด 1์”ฉ ์ฆ๊ฐ€ (๋‹จ, num์ด 7๋ณด๋‹ค ์ปค์ง€๋ฉด ๋‹ค์‹œ 1) 2. #gallery์˜ src ์†์„ฑ ์ค‘ ์†์„ฑ๊ฐ’์˜ ์ผ๋ถ€๋ฅผ ๋ณ€๊ฒฝ */ function next() { // num์ด 1์”ฉ ์ฆ๊ฐ€ (์•„์ง์€ ๋ณ€์ˆ˜์—๋งŒ ๋ฐ˜์˜) num++; // 7๋‹ค์Œ์—๋Š” ๋‹ค์‹œ 1์ด๋œ๋‹ค if (num > 7) num = 1; // ์•„์ด.. 2022. 12. 28.
๋‚ด์žฅ๊ฐ์ฒด ์‹ค์Šต ๋‚ด์žฅ๊ฐ์ฒด์˜ ์ข…๋ฅ˜ Date ๊ฐ์ฒด ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ฑฐ๋‚˜ ์„ค์ • getDate๋Š” ๋‚ ์งœ getDay๋Š” ์š”์ผ Math ๊ฐ์ฒด ์ˆ˜ํ•™ ์—ฐ์‚ฐ์„ ์œ„ํ•œ ๊ฐ์ฒด Math.random() ํ˜•์‹์„ ์ฃผ๋กœ ์‚ฌ์šฉ Date ๊ฐ์ฒด ์‹ค์Šต ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์œผ๋กœ ์˜ค๋Š˜์˜ ๋‚ ์งœ์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž. ๋‚ด์žฅ๊ฐ์ฒด๋Š” ์ปดํ“จํ„ฐ์— ๋‚ด์žฅ๋œ ๊ธฐ๋ณธ๊ฐ์ฒด๋ฅผ ๋œปํ•œ๋‹ค ์‹œ๊ฐ„. ๋‚ ์งœ . ์š”์ผ ์„ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐํ•˜์ง€์•Š์•„๋„ ์ปดํ“จํ„ฐ์— ๋‚ด์žฅ๋œ ์‹œ์Šคํ…œ์„ ์ž๋™์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ์ˆ˜์žˆ๋‹ค. // ์ƒˆ๋กœ์šด๋‚ ์งœ today ๋ณ€์ˆ˜์ง€์ • var today = new Date(); ๋‚ด๊ฐ€ today๋ž€ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋‚ ์งœ ๋‚ด์žฅ๊ฐ์ฒด์ธ Date๋ฅผ ๋‹ด๋Š”๋‹ค. // nowDay์— today์˜ ์š”์ผ์„ ๋Œ€์ž… var nowDay = today.getDay(); ๋‚ด๊ฐ€ ๋งŒ๋“  today ๋ณ€์ˆ˜๋ฅผ ๋˜ nowDay ๋ณ€์ˆ˜์— ๋‹ด.. 2022. 12. 28.