"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > CSS 클립 경로와 JavaScript를 사용하여 반전된 텍스트 색상 호버 효과를 얻는 방법은 무엇입니까?

CSS 클립 경로와 JavaScript를 사용하여 반전된 텍스트 색상 호버 효과를 얻는 방법은 무엇입니까?

2024-11-09에 게시됨
검색:558

How to Achieve an Inverted Text Color Hover Effect Using CSS Clip-paths and JavaScript?

CSS 및 JavaScript를 사용하여 마우스를 가리킬 때 텍스트 색상 반전

원하는 호버 효과를 얻으려면 검은색 커서가 나타나면 CSS 클립 경로의 기능과 JavaScript 이벤트 처리를 결합할 수 있습니다.

이 접근 방식은 두 개의 텍스트 레이어, 즉 기본 텍스트 레이어와 반전된 텍스트 레이어. 반전된 텍스트 레이어는 기본 텍스트 레이어 뒤에 위치하며 텍스트 색상은 흰색으로 설정되어 있습니다.

JavaScript를 사용하여 마우스 움직임을 캡처하고 반전된 텍스트 레이어의 클립 경로를 동적으로 조정합니다. 마우스를 움직이면 반전된 텍스트가 더 많이 표시되도록 클립 경로가 조정되어 기본 텍스트의 색상이 반전되는 듯한 느낌을 줍니다.

핵심 코드 구성 요소에 대한 분석은 다음과 같습니다.

/* Primary Text Layer */
h1 {
  color: #000;
  position: relative;
}

/* Inverted Text Layer */
h1:before {
  position: absolute;
  content: attr(data-text); /* Same text as primary layer */
  color: #fff;
  background: #000;
  clip-path: circle(0 at var(--x, -100%) var(--y, -100%)); /* Dynamic Clip-path */
}

/* Cursor */
.cursor {
  position: fixed;
  width: 40px;
  height: 40px;
  background: #000;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  z-index: -2;
}
// Event Listener for Mouse Movement
document.body.onmousemove = function(e) {
  // Update cursor position
  cursor.style.left = e.clientX   'px';
  cursor.style.top = e.clientY   'px';

  // Update clip-path of inverted layer based on mouse position
  h1.style.setProperty('--x', (e.clientX - p.top)   'px');
  h1.style.setProperty('--y', (e.clientY - p.left)   'px');
};

예제 코드:

WORK

결과:

'WORK' 텍스트 위로 마우스를 가져가면 검정색 텍스트가 점차 흰색으로 전환됩니다. 마우스 커서가 움직일 때마다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3