๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+47] Front-end ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ 3์ผ์ฐจ : section ๋ ˆ์ด์•„์›ƒ ์„ค์ •

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 11. 27.

 

 

๊ตญ๋น„์ง€์› D+47

Front-end ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ 3์ผ์ฐจ

- section ๋ ˆ์ด์•„์›ƒ ์„ค์ • -

 


 

์˜ค๋Š˜ ํ•œ ์ผ

- section ๋ ˆ์ด์•„์›ƒ ์„ค์ •

 

ํŒŒ์ผ ๊ตฌ์„ฑ ๋ฐ ๋‚ด์šฉ

 


• style.css

- section์— ๋Œ€ํ•œ ๋””์ž์ธ์„ ์žฌ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

.product-name {
    font-size: 7.5rem;
    text-align: center;
    margin-top: 2em;
}

.sticky-element {
    display: none;
    position: fixed;
}

.section0-message {
    font-size: 4.5rem;
    font-weight: bold;
    width: 100%;
    height: 6rem;
    left : 0;
    top: 5em;
    text-align: center;
}

#show-section0 .sticky-element{
    display: block;
}

 

• main.js

- ์Šคํฌ๋กค์„ ๋‚ด๋ฆด๋•Œ ๋งˆ๋‹ค section์˜์—ญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

const setBodyID = function(section)
{
    document.body.setAttribute('id', `show-section${section}`);
}

////////////////////////////////////////////////////////
// ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ

    // ์Šคํฌ๋กค์€ system์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์œ„ window์— ์ด๋ฒคํŠธ์ถ”๊ฐ€
    window.addEventListener('scroll', () => {
        yOffset = window.scrollY;

        // ํ˜„์žฌ ์„น์…˜๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์˜จ ๋’ค body ์•„์ด๋”” ์„ค์ •
        currentSection = getCurrentSection();       // ์Šคํฌ๋กคํ• ๋•Œ๋งˆ๋‹ค ์„น์…˜์œ„์น˜๋ฅผ ์—…๋ฐ์ดํŠธ
        setBodyID(currentSection);  // currentSection์„ ํ†ตํ•ด ๋ฐ›์•„์˜จ ์„น์…˜ ์œ„์น˜๋ฅผ ํ†ตํ•ด body์˜ id๊ฐ’ ์ƒˆ๋กœ๊ณ ์นจ
    });

 


๊ฒฐ๊ณผํ™”๋ฉด

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€