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

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

by KASSID 2022. 2. 25.

๋ชฉ์ฐจ

    728x90

     ์ฝ”๋“œ ๐Ÿ”ฝ

    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๋ฅผ ์ด์šฉํ•ด์„œ

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

     

     

    ๋Œ“๊ธ€