20_Button Ripple Effect
๐ป ์ฃผ์ : ๋ฒํผ ํด๋ฆญ์ ๋ง์ฐ์ค ํฌ์ธํฐ์ ํ๊ธ ํจ๊ณผ๋ฅผ ์ค.
// ํด๋ฆญํ ๊ณณ์ ์ขํ
const x = e.clientX;
const y = e.clientY;
// ๋ฒํผ ๋ด์์๋ง ์ ์ฉ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฒํผ์ ์์น๋ฅผ ์ ์ฉํจ.
const buttonTop = e.target.offsetTop;
const buttonLeft = e.target.offsetLeft;
// ๋ฒํผ ๋ด์์ ํด๋ฆญํ์ ๋ ์ขํ
const xInside = x - buttonLeft;
const yInside = y - buttonTop;
const circle = document.createElement('span');
circle.classList.add('circle');
circle.style.top = yInside + 'px';
circle.style.left = xInside + 'px';
// this๋ฅผ ์ฌ์ฉํ ๋๋ ํ์ดํ ํจ์๊ฐ ์๋ ์ผ๋ฐ ํจ์ ํํ๋ก ์จ์ผ ํจ.
this.appendChild(circle);