μν©
λ§€λ² μλ‘μ΄ νμ μ΄ μ¬λΌμ¬ λλ§λ€ 1200px μλμ νμ topκ°μ κ·Έ μ νμ μ λμ΄κ°λ§νΌ μλμΌλ‘ μ λ°μ΄νΈνκ³ μλ μν©μ΄μλ€.
<div id="pop_84"></div>
<div id="pop_82"></div>
<div id="pop_75"></div>
- μμ ννμ νμ μ΄ μμΌλ©°, κ° νμ μ absoluteλ‘ νμλλ€.
- νμ ID λ²νΈλ μ μ°νλ©°, ID λ²νΈλ νμ λ³κ²½λ μ μλ€. (κ΄λ¦¬μμ¬μ΄νΈμμ μ¬μ©μμΈ ν΄λΌμ΄μΈνΈκ° λ§λλ‘ μ¨λ£λλ€)
- κ° νμ μ΄ λΈλΌμ°μ λλΉ 1200px μ΄νλ‘ λ¨μ΄μ§λ©΄ 첫 λ²μ§Έ νμ μ΄ μμμ μλλ‘ μμλλ‘ λ°°μΉλλ€.
- νλ¨ λ°°μΉλ css top:npxλ‘ μ μ΄λλ©°, 첫 λ²μ§Έ νμ μ top:60pxλ‘ μμνκ³ λ λ²μ§Έ νμ μ top:(μμ μλ νμ μ λμ΄ κ° + 20px)λ‘ κ³μ°λμ΄μΌ νλ€.
1μ°¨ ν΄κ²°
const popups = document.querySelectorAll('[id^="pop_"]');
if (window.innerWidth < 1200) {
let currentTop = 60;
for (let i = 0; i < popups.length; i++) {
const popup = popups[i];
popup.style.top = `${currentTop}px`;
currentTop += popup.getBoundingClientRect().height + 20;
}
}
currentTopμ κΈ°λ³Έκ° (첫λ²μ§Έ νμ μ topκ°)μΌλ‘ μ€μ ν΄ λ λ€, νμ μ cssλ₯Ό μ€ νμ currentTopμ νμ μ λμ΄κ°+20μ λνλ λ°©μμΌλ‘ μλννμλ€.
λ¬Έμ λ°μ
νμ μ λ«μ§ μμ μνμμ λΈλΌμ°μ μ¬μ΄μ¦λ₯Ό λμλ€ μ€μλ€ νμ λ νμ λμ΄κ°μ΄ λ³νμ§ μλ λ¬Έμ κ° μμλ€.
2μ°¨ ν΄κ²°
const popups = document.querySelectorAll('[id^="pop_"]');
function positionPopups() {
if (window.innerWidth < 1200) {
let currentTop = 60;
for (let i = 0; i < popups.length; i++) {
const popup = popups[i];
popup.style.top = `${currentTop}px`;
currentTop += popup.getBoundingClientRect().height + 20;
}
} else {
// windowκ° 1200λ³΄λ€ ν΄ μ 리μ
for (let i = 0; i < popups.length; i++) {
const popup = popups[i];
popup.style.top = '';
}
}
}
// νμ΄μ§λ‘λ μ ν¨μ νΈμΆ
positionPopups();
// λΈλΌμ°μ 리μ¬μ΄μ¦ μ λ€μ νΈμΆ
window.addEventListener('resize', positionPopups);
ν¨μλ‘ λ¬Άμ΄μ μ μΈ νμ windowκ° resizeλ μ νλ² λ νΈμΆν΄μ£Όμλ€.
'π¨ JavaScript > μμ©νμ¬ μλνorλ¬Έμ ν΄κ²°νκΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ¬Έμ ν΄κ²° : hashκ° λ°μμ scroll μ‘°μ νκΈ° (0) | 2023.05.12 |
---|