ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

shoplist

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์„ JS ์ƒ์—์„œ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๊ฒŒ๋” ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

ํ•˜์ง€๋งŒ ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์ด ํ˜„์žฌ ์ƒ์œ„ ์š”์†Œ์˜ view๋ฅผ overflowํ•˜๊ฒŒ ๋˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์œผ๋กœ ์Šคํฌ๋กค ๋ทฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋งž์ถฐ์ง€์ง€ ์•Š๋Š” UX์ ์œผ๋กœ ๋ถˆํŽธํ•จ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค.

 

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ์—๋Š” scrollElement์˜ scrollTop์˜ ์ƒ๋Œ€์  ์œ„์น˜ ๊ฐ’์„ ์ด์šฉํ•˜์˜€์ง€๋งŒ ์ด๋ณด๋‹ค ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ํŠน์ • ์š”์†Œ ์œ„์น˜๋กœ ์Šคํฌ๋กค ๋ทฐ๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด ํฌ์ŠคํŒ…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

๋ฌธ์ œํ•ด๊ฒฐ_element.scrollintoView()

https://developer.mozilla.org/ko/docs/Web/API/Element/scrollIntoView

 

element.scrollIntoView - Web API | MDN

Element ์ธํ„ฐํŽ˜์ด์Šค์˜ scrollIntoView() ๋ฉ”์†Œ๋“œ๋Š” scrollIntoView()๊ฐ€ ํ˜ธ์ถœ ๋œ ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋„๋ก ์š”์†Œ์˜ ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์Šคํฌ๋กคํ•ฉ๋‹ˆ๋‹ค.

developer.mozilla.org

Element ์ธํ„ฐํŽ˜์ด์Šค์˜ scrollIntoView() ๋ฉ”์†Œ๋“œ๋Š” scrollIntoView()๊ฐ€ ํ˜ธ์ถœ ๋œ ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋„๋ก ์š”์†Œ์˜ ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์Šคํฌ๋กคํ•ฉ๋‹ˆ๋‹ค.

 

li๋ฅผ ๋™์ ์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค, ์š”์†Œ์— scrollintoView ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ํ˜„์žฌ ์Šคํฌ๋กค ๋ทฐ๊ฐ€ ํ•ญ์ƒ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋˜๋Š” ์š”์†Œ์— ํฌ์ปค์‹ฑ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค.

function onAdd() {
    const text = input.value;

        if(text !== '') {
            const item = createItem(text);
            items.append(item);
            item.scrollIntoView({block: 'center'}); //์˜ต์…˜ ๊ฐ’ => ์ˆ˜์ง ์ •๋ ฌ์„ center์— ์ •์˜
            } else {
                console.error('Type Text!');
            }
   
    input.value = '';
    input.focus();
}

 

๊ฒฐ๊ณผ

shoplist

๊ฒฐ๊ณผ์ ์œผ๋กœ overflow๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™์œผ๋กœ ์Šคํฌ๋กค ๋ทฐ๊ฐ€ ์ด๋™ํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ