...

pointer-events ์์ฑ
css๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฆญ์ด๋ฒคํธ๋ฅผ ์ ์ดํ ์ ์๋๋ฐ, ๊ทธ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก CSS ํ๋กํผํฐ์ธ pointer-events ์ด๋ค. ์ด ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์์์์์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๋์ํ์ง ์๋๋ก ์ ์ดํ ์ ์๋ค.
- none : ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ ์ฉํ์ง ์์
- auto : ๋ธ๋ผ์ฐ์ ์๋์ผ๋ก ์ ํํจ
- inherit : ์์ ๋์ด์ง
๋ง์ฝ none์ ๊ฐ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋์ํ์ง ์์ผ๋ฉฐ ๋ง์ฐ์ค ๊ด๋ จ๋ ํจ๊ณผ (click, :hover) ์ญ์ ๋์ํ์ง ์๊ฒ ๋๋ค.
์๋ฅผ๋ค์ด ์๋์ ๊ฐ์ด ํ๋์ ๋ฐ์ค ์์ญ๊ณผ ํ๋์ ๋ฐ์ค ์์ญ์ด ์๋๋ฐ, ํ๋์ ์์ญ์ด ํ๋์ ์์ญ์ ์์ ๋ฎ์ด ์ผ๋ถ๋ถ์ ๊ฐ๋ฆฌ๊ณ ์๋ ์ํ์ด๋ค. ์ด ์ํ์์ ๊ฐ๋ฆฌ๊ณ ์๋ ์ผ๋ถ๋ถ ์์ญ์ ํด๋ฆญํ๋ฉด ํ๋์ ์์ญ์ ๋ฑ๋ก๋ click ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ์ด์ฐ ๋ณด๋ฉด ๋น์ฐํ ์์์ด๋ผ ์๊ฐํ ํ
๋ฐ, ์ด ๋ pointer-events ์์ฑ์ ์ฌ์ฉํ์ฌ ํด๋ฆญ์ด ์ ์ ๋์ํ๋๋ก ๋ง๋ค ์ ์๋ค.
<div>
<div class="pointer"></div>
<div class="click" onclick="alert('ํ๋์ ์์ญ์ ํด๋ฆญํ์์ต๋๋ค');"></div>
</div>
<div>
<div class="pointer2">pointer-events</div>
<div class="click" onclick="alert('ํ๋์ ์์ญ์ ํด๋ฆญํ์์ต๋๋ค');"></div>
</div>
.pointer2 {
width: 100px;
height: 100px;
position: relative;
top: 60px;
left: 30px;
background: skyblue;
pointer-events: none; /* ํ๋์ ์์ญ์ ํฌ์ธํฐ ๊ด๋ จ ๋์์ none์ผ๋ก ํจ์ผ๋ก์จ ๋ฌด์ํ๊ฒ ํ๋ค */
}
pointer-events ์์ฑ์ด ์ ์ฉ๋ ์ฐ์ธก ์ค๋ณต๋ ์์ญ์ ํด๋ฆญํด๋ณด๋ฉด ์๊น์ ๋ค๋ฅด๊ฒ ํด๋ฆญ์ด๋ฒคํธ๊ฐ ๋์ํ์ฌ ์๋์ด ์ถ๋ ฅํ๊ฒ ๋๋ค. ๋ง์ฐ์ค๊ฐ ํด๋น ์์ญ์๋ ๋์ํ์ง ์๊ณ ๊ทธ ์๋์ ๊ฒน์ณ์๋ ๋ค๋ฅธ ์๋ฆฌ๋จผํธ์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ํธ์ถํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด์ฒ๋ผ ์ ๋๋งค์ด์
์ด๋ ๋ณต์กํ ์ธํฐ๋ ์
๊ตฌํ์ ๊ฐ๊ฐ์ ์๋ฆฌ๋จผํธ ์์๊ฐ ์ค์ฒฉ๋ ์ ์๋๋ฐ, ์ด ๊ฒฝ์ฐ ํด๋ฆญ ์์ญ์ด ๊ฐ๋ ค์ ธ ๋์ํ์ง ์์ด, ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ pointer-events ์์ฑ์ด ํ์ํ๊ฒ ๋๋ค.
์๋ฅผ๋ค์ด position ๊ณผ z-index๋ฅผ ํตํด ์์ญ์ด ๊ฒน์ณ์ง๋ฉด z-index๊ฐ ๋์ ์์ญ์ ์ด๋ฒคํธ๋ง ๋ฐ์๋๊ฒ ๋๋๋ฐ, ํ์ง๋ง ๋ค์ ์๋ ์์ญ์ ์ด๋ฒคํธ๋ ๋ฐ์ ์ํค๊ณ ์ถ์ ๋ ์ด์ฉ๋ ์ ์๋ค.
/* z-index๋ฅผ ๋ฌด์ํ๊ณ ๊ฒน์ณ์๋ ์์ญ์ ํด๋ฆญํ์๋ ๋ค์ ์๋ click ์ด๋ฒคํธ ๋ฐ์ํ๊ฒ ํ๊ธฐ */
test {
z-index: 999;
pointer-events: none; /* HTML ์์์ ์ ์๋ ์ด๋ฒคํธ( click, hover, drag, active...๋ฑ )๋ฅผ ๋นํ์ฑํํ๋ค. */
}
# ์ฐธ๊ณ ์๋ฃ
https://webisfree.com/2019-03-14/css-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-pointer-events-property
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.