본문 바로가기
공부 정리/jsChallenge

js challenge day 22

by 경적필패. 2023. 2. 22.
반응형

Following Along Nav

 

Code

  <script>
    const triggers = document.querySelectorAll('a');
    const highlight = document.createElement('span');
    highlight.classList.add('highlight');
    document.body.appendChild(highlight);

    const highlightLink = (e) => {
      const linkCoords = e.target.getBoundingClientRect();
      console.log(linkCoords)
      const coords = {
        width: linkCoords.width,
        height: linkCoords.height,
        top: linkCoords.top + window.scrollY,
        left: linkCoords.left + window.scrollX
      };
      highlight.style.width = `${coords.width}px`
      highlight.style.height = `${coords.height}px`
      highlight.style.transform = `translate(${coords.left}px, ${coords.top}px)`;
    }
    triggers.forEach(a => a.addEventListener('mouseenter', highlightLink));
  </script>

 

배운 점 & 느낀 점

글에서 특정 글에 마우스를 가져다 대면 css를 입혀주는 과제였습니다.

이 과제를 하면서 배운 점은 2가지 입니다.

1. getBoundingClientRect()는 요소의 크기를 가져오는데 매우 유용한 메소드 입니다.

2. append와 appendChild는 모두 DOM에서 사용되는 메소드인데, append는 appendChild와 다르게, 여러요소를 한번에 삽입할 수 있고 DomString을 추가할 수 도 있습니다.

ex)

const name = 'John';
const age = 30;
document.body.append(`My name is ${name} and I am ${age} years old.`);
반응형

'공부 정리 > jsChallenge' 카테고리의 다른 글

js challenge day 24  (0) 2023.02.24
js challenge day 23  (0) 2023.02.23
js challenge day 21  (0) 2023.02.21
js challenge day 19  (0) 2023.02.16
js challenge day 18  (0) 2023.02.15

댓글