ํฐ์คํ ๋ฆฌ ๋ทฐ
์์์ ๋์ ์ธ ์์น๊ฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ์คํฌ๋กค์ด ์๋๋ ๋ฌธ์ _element.scrollintoView()
choi95 2021. 9. 7. 18:51๋ฌธ์
๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ ํญ๋ชฉ์ JS ์์์ ๋์ ์ผ๋ก ์ถ๊ฐ๋๊ฒ๋ ๊ตฌํํ์๋ค.
ํ์ง๋ง ๋ฆฌ์คํธ ํญ๋ชฉ์ด ํ์ฌ ์์ ์์์ view๋ฅผ overflowํ๊ฒ ๋๋ฉด ์๋กญ๊ฒ ์ถ๊ฐ๋ ํญ๋ชฉ์ผ๋ก ์คํฌ๋กค ๋ทฐ๊ฐ ์๋์ผ๋ก ๋ง์ถฐ์ง์ง ์๋ UX์ ์ผ๋ก ๋ถํธํจ์ด ๋ฐ์ํ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒ์์๋ scrollElement์ scrollTop์ ์๋์ ์์น ๊ฐ์ ์ด์ฉํ์์ง๋ง ์ด๋ณด๋ค ๋ ๊ฐํธํ๊ฒ ํน์ ์์ ์์น๋ก ์คํฌ๋กค ๋ทฐ๋ฅผ ์ด๋ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด ํฌ์คํ ํ๊ณ ์ ํ๋ค.
๋ฌธ์ ํด๊ฒฐ_element.scrollintoView()
https://developer.mozilla.org/ko/docs/Web/API/Element/scrollIntoView
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();
}
๊ฒฐ๊ณผ
๊ฒฐ๊ณผ์ ์ผ๋ก overflow๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ์คํฌ๋กค ๋ทฐ๊ฐ ์ด๋ํ๋ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ ์ ์์๋ค.
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
event target ํฌ์ปค์ฑํ๊ธฐ (0) | 2021.10.09 |
---|---|
๋ถ๋๋ฌ์ด ์ ๋๋ฉ์ด์ ํจ๊ณผ_RequestAnimationFrame ๊ตฌํํด๋ณด๊ธฐ (0) | 2021.10.09 |
๋นํธ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ์ด์ง์ ๊ฐํธํ๊ฒ ๊ตฌํ๊ธฐ (0) | 2021.09.04 |
๋ณ์ UI (0) | 2021.08.28 |
๋ฐฑ์ค node.JS ์ ์ถ๋ ฅ ๊ด๋ฆฌ (0) | 2021.08.22 |