๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ‘จโ€๐Ÿš€ | OTHERS/๊ฐœ๋ฐœ์ผ์ง€

๋‚˜์˜ ์ฒซ ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ_(3)

by KASSID 2022. 2. 25.

 ์ฝ”๋“œ ๐Ÿ”ฝ

https://github.com/Bluishhot-Star/WEB/tree/master/Firstpage

 

์ด๋ฒˆ์—๋Š” JS๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์ ์šฉ์‹œ์ผœ๋ณด์•˜๋‹ค.

์•„์ง react๋‚˜ vue๋ฅผ ๋‹ค๋ค„๋ณด์ง€ ์•Š์•„์„œ

vanilla JS๋กœ๋งŒ ๊ตฌํ˜„์„ ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

 

๊ทธ ์ฒ˜์Œ์œผ๋กœ

์Šคํฌ๋กค์„ ํ•œ ๋ฒˆ์— ์˜ฌ๋ ค์ฃผ๋Š” ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.

 

 Back-to-top ๋ฒ„ํŠผ 

ํ™”์‚ดํ‘œ ์•„์ด์ฝ˜์€

FontAwesome์—์„œ ๊ฐ€์ ธ์™”๋‹ค.

https://fontawesome.com/icons

 

ํ™”์‚ดํ‘œ ๋’ค์˜ ๋‘ฅ๊ทผ ์›์—๋Š”

position: fixed ๋ฅผ ์ ์šฉํ•ด์„œ

๋ฌธ์„œ์˜ ํ๋ฆ„์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•˜์˜€๊ณ ,

z-index: 999๋กœ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๋„๋ก ํ–ˆ๋‹ค.

 

๋ฒ„ํŠผ::after์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ์„ ํ•ด์ฃผ์–ด์„œ

์•„์ด์ฝ˜์„ ์ ์šฉํ–ˆ๋‹ค.

#backtotop::after{
    content : "\f077"; /*์œ ๋‹ˆ์ฝ”๋“œ*/
    font-family: FontAwesome; /*๋‹ค์Œ๊ณผ ๊ฐ™์ด ์จ์ฃผ์–ด์•ผ ์ ์šฉ๋จ*/
    font-size: 1.5rem;
    line-height: 40px;
    color: white;
}

 

back-to-top ๋ฒ„ํŠผ์€

์Šคํฌ๋กค์ด ๊ฐ€์žฅ ์œ„์— ์žˆ์„ ๋•Œ์—

์กด์žฌ์ด์œ ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•ด์„œ ์ƒˆ๋กญ๊ฒŒ ๋‹ค๋ค„๋ณธ ๊ฒƒ์€

pageYOffset์ด๋‹ค. (scrollY์™€ ๋™์ผํ•จ)

window ํ”„๋กœํผํ‹ฐ์ด๊ณ  ํ˜„์žฌ ์Šคํฌ๋กค์˜ Y์ขŒํ‘œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

pageYOffset์ด 0์ผ ๋•Œ๊ฐ€ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

let scrollY = window.pageYOffset

 

๊ทธ๋ฆฌ๊ณ  ์ตœ์ƒ๋‹จ์œผ๋กœ ์Šคํฌ๋กค์„ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ์œ„ํ•ด์„œ

scrollTo๋ฅผ ๋‹ค๋ค„๋ณด์•˜๊ณ 

์ธ์ž๋กœ ์ขŒํ‘œ์™€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™ํ•  ์ง€๋ฅผ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

 window.scrollTo({top: 0, behavior: "smooth"})

์‹คํ–‰ํ•  ๋•Œ ์ ์šฉํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์€

translate์™€ rotateY๋ฅผ ์ด์šฉํ•ด์„œ

๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.

 

 

๋Œ“๊ธ€