[JS30] - 16) Mouse Move Shadow

GY·2021년 11월 1일
0

Javascript 30 Challenge

목록 보기
16/30

const $text = document.querySelector('h1');
const $hero = document.querySelector('.hero');
let walk = 500;

document.addEventListener("mousemove", handleMove);

function handleMove(ev) {
  const {offsetWidth: width, offsetHeight: height} = $hero;
  let {offsetX: x, offsetY: y} = ev;

  if (this !== ev.target) {
    x = x + ev.target.offsetLeft;
    y = y + ev.target.offsetTop;
  }

  const xWalk = Math.round((x / width * walk) - (walk / 2));
  const yWalk = Math.round((y / height * walk) - (walk / 2));

  $text.style.textShadow = `
  ${xWalk}px ${yWalk}px 0 rgba(255,0,255,0.7),
  ${xWalk * -1}px ${yWalk}px 0 rgba(0,255,255,0.7),
  ${yWalk}px ${xWalk * -1}px 0 rgba(0,255,0,0.7),
  ${yWalk * -1}px ${xWalk}px 0 rgba(0,0,255,0.7)

  `
}
profile
Why?에서 시작해 How를 찾는 과정을 좋아합니다. 그 고민과 성장의 과정을 꾸준히 기록하고자 합니다.

0개의 댓글