๐Ÿ–ฑscrollTop , scrollHeight, clientHeight

Qomi Yooยท2023๋…„ 2์›” 18์ผ
0

javaScript

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

window์˜ scroll ๊ฐ์ง€

window.addEventListner('scroll',function(){
const scrollTop = window.scrollY
})

ํ˜„์žฌ ์ขŒํ‘œ๊ฐ’ + ์ „๋‹ฌ๋œ ์ขŒํ‘œ๊ฐ’ : window.scrollBy(x,y)
์ „๋‹ฌ๋œ ์ขŒํ‘œ์œผ๋กœ ์ด๋™ : window.scrollTo(x,y)

scroll ๋†’์ด ๊ตฌํ•˜๊ธฐ


scrollTop

  • ์›๊ธ€ ๋งจ ์ฒ˜์Œ๋ถ€ํ„ฐ ~ ํ˜„์žฌ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ถ€๋ถ„๊นŒ์ง€์˜ ๊ธธ์ด๊ฐ€ scrollTop์ด๋‹ค (์ ˆ๋Œ€์ ์ธ ์š”์†Œ)
  • ํ˜„์žฌ ์Šคํฌ๋กค์˜ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

scrollHeight

  • ํ™”๋ฉด ๋ฐ”๊นฅ์œผ๋กœ ๋น ์ ธ๋‚˜๊ฐ„ ๋ถ€๋ถ„๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จํ•ด์„œ ์ „์ฒด์˜ ๊ธ€์˜ ๊ธธ์ด

clientHeight

  • client๋ผ๋Š” ์˜๋ฏธ๋Œ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆˆ์— ๋ณด์ด๋Š” ๊ทธ ๋ฒ”์œ„๋งŒํผ์„ ๋งํ•œ๋‹ค.
    ํ˜„์žฌ ํ™”๋ฉด์— ๋ณด์ด๋Š” height (์Šคํฌ๋กค ์‚ฌ์ด์ฆˆ, border size๋Š” ํฌํ•จ x)

์กฐ๊ฑด ์„ฑ๋ฆฝ

์Šคํฌ๋กค ์˜์—ญ์„ ๊ฐ€์ง„ div(Lorem)๋ฅผ ์Šคํฌ๋กค ์˜์—ญ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

  • ์กฐ๊ฑด : ์ด ํŽ˜์ด์ง€์—์„œ Lorem์˜์—ญ ์•ˆ์—์„œ ์Šคํฌ๋กค ์‹œ ์Šคํฌ๋กค ๋งˆ์ง€๋ง‰์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ alert ์ฐฝ์„ ๋„์šด๋‹ค.
const scroll = document.querySelector('.lorem').scrollTop
const ์‹ค์ œ๋†’์ด = document.querySelector('.lorem').scrollHeight 
const ๋ณด์ด๋Š”๋†’์ด = document.querySelector('.lorem').clientHeight div๋†’์ด

์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

if(scroll === ์‹ค์ œ๋†’์ด)  // โŒ

scroll์€ ๋ณด์ด๋Š” ๋†’์ด๊นŒ์ง€์˜ ๊ฐ’์ด ๋‚˜์˜ค์ง€์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹์„ ๋ฐ”๊ฟ”์ฃผ์–ด์•ผํ•œ๋‹ค.

if(scroll + ์‹ค์ œ๋†’์ด >= ๋ณด์ด๋Š”๋†’์ด) โญ•๏ธ
profile
์—…๋ฌด์ผ์ง€

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