찾다
웹 프론트엔드CSS 튜토리얼순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

마우스 따르기(Mouse Follow)는 이름에서 알 수 있듯이 요소가 마우스의 움직임을 따르고 해당 움직임을 한다는 것을 의미합니다. 일반적으로 CSS는 표현을 담당하고 JavaScript는 동작을 담당합니다. 마우스 따라가기의 효과는 동작이며 이를 달성하려면 일반적으로 JS의 도움이 필요합니다.

물론, 이 글의 초점은 CSS를 사용하여 JS에 의존하지 않고 마우스를 따라가는 동작 애니메이션 효과를 시뮬레이션하는 방법을 소개하는 것입니다.

먼저 마우스 팔로우 효과가 어떤 것인지 살펴보겠습니다.

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

Principle

위의 데모를 예로 들어 CSS를 사용하여 마우스 팔로우를 구현하려면 가장 중요한 점은 다음과 같습니다.

현재 마우스의 위치를 ​​실시간으로 모니터링하는 방법은 무엇입니까?

알겠습니다. 사실 많은 CSS 효과는 "기만"이라는 단어와 불가분의 관계에 있습니다. 현재 마우스가 어디에 있는지 감지하려면 요소로 페이지를 덮기만 하면 됩니다.

100개의 요소를 사용하여 전체 페이지를 덮습니다. 마우스를 올리면 색상이 표시됩니다.

<div class="g-container">
  <div class="position"></div>
  <div class="position"></div>
  <div class="position"></div>
  <div class="position"></div>
  ... // 100个
</div>
.g-container {
    position: relative;
    width: 100vw;
    height: 100vh;
}
 
.position {
    position: absolute;
    width: 10vw;
    height: 10vh;
}
 
@for $i from 0 through 100 {
     
    $x: $i % 10;
    $y: ($i - $x) / 10;
     
    .position:nth-child(#{$i + 1}) {
        top: #{$y * 10}vh;
        left: #{$x * 10}vw;
    }
 
    .position:nth-child(#{$i + 1}):hover {
        background: rgba(255, 155, 10, .5)
    }
}

이 효과를 얻을 수 있습니다:

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

좋아요, 각 요소의 호버 효과를 제거하면 이때 페이지를 조작하는 것은 실제로 아무런 효과가 없습니다. 그러나 동시에 :hover 의사 클래스를 통해 현재 마우스가 페이지의 어느 범위에 있는지 대략적으로 알 수 있습니다. :hover 伪类,我们又是可以大概得知当前鼠标是处于页面上哪个区间的。

好继续,我们再给页面添加一个元素(圆形小球),将它绝对定位到页面中间:

<div class="g-ball"></div>
.ball {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10vmax;
    height: 10vmax;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

最后,我们借助 ~ 兄弟元素选择器,在 hover

좋아요, 계속해서 페이지에 다른 요소(둥근 공)를 추가하고 페이지 중앙에 배치하겠습니다.

@for $i from 0 through 100{
     
    $x: $i % 10;
    $y: ($i - $x) / 10;
     
    .position:nth-child(#{$i + 1}):hover ~ .ball {
        top: #{$y * 10}vh;
        left: #{$x * 10}vw;
    }
}
rrreee

마지막으로 ~ 형제 요소 선택기를 사용합니다. hover 페이지를 가리키면(실제로 숨겨진 100개의 div를 가리키면) 공 요소의 위치는 현재 가리키고 있는 div를 통해 제어됩니다.

rrreee순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)이제 간단한 순수 CSS 마우스 추적 효과가 구현되었습니다. 이해하려면 아래 그림을 보시면 됩니다.

전체 데모를 보려면 여기를 클릭하세요. 참조:

CodePen 데모 - 마우스 따라가기의 CSS 구현

문제

위의 데모를 보면 여전히 많은 결함이 있습니다. 예를 들어

정확도가 너무 낮습니다.

div로 요소 이동 정확한 마우스 위치보다는 마우스가 위치한 공간을 위해 숨겨진 div 수를 늘려 최적화할 수 있습니다. 예를 들어 타일식 div 100개에서 타일식 div 1000개로 늘립니다.

움직임이 충분히 부드럽지 않습니다.

효과가 충분히 부드럽지 않습니다. 이는 합리적인 이징 기능과 적절한 애니메이션 지연을 통해 최적화해야 할 수도 있습니다.

말리세요

응. 이제 원리를 익혔으므로 이 기술을 사용하여 어떤 다른 흥미로운 효과를 만들 수 있는지 살펴보겠습니다.

CSS 마우스 팔로우 버튼 효과

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)처음에는 SVG + CSS + JS를 사용하여 구현한 CodePen에서 다음과 같은 효과를 보았습니다. CSS만 사용하여 복사할 수 있는지 궁금했습니다.

CodePen Demo -- 끈적끈적한 마우스 팔로우

  • 글쎄, 이상은 매우 통통하지만 현실은 매우 마른 체형입니다. CSS를 사용하는 것만으로는 여전히 많은 제한이 있습니다.

  • 하지만 위에서 소개한 방법을 사용하여 마우스 추적을 구현할 수 있습니다.

    CSS 필터 필터: Blur() 대비()를 사용하여 요소 융합을 시뮬레이션할 수 있습니다.
  • What you do. CSS 필터 기술과 세부 사항을 모릅니다

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)좋아요, CSS만 사용하여 파산한 시뮬레이션 효과 버전을 살펴보겠습니다.

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명) 좀 이상하네요. 조정하여 효과를 약간 억제할 수 있습니다. 색상 및 필터 강도(다양한 시도...)를 적용하고 약간 더 나은 유사한 효과를 얻었습니다.

Demo Click me, CodePen Demo -- CSS 마우스 따라가기 버튼 효과

전체 화면 마우스 따라가기 animation

🎜🎜좋아요, 계속하세요. 좀 더 멋진 것을 해보자. 글쎄, 그건 화려한 종류야. 땀_웃음🎜

하나의 요소가 아닌 여러 요소를 제어한다면. 여러 요소 간의 애니메이션 효과는 서로 다른 전환 지연으로 설정되어 순서대로 이동이 지연됩니다. 와, 생각만 해도 신난다. 다음과 같습니다:

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

CodePen Demo -- 애니메이션을 따라가는 마우스 PURE CSS MAGIC MIX

더 많은 상상력을 발휘할 수 있다면 더 많은 불꽃을 만들 수 있습니다.

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

이 효과는 Yusuke Nakaya의 작업입니다. 제가 아주 좋아하는 일본 CodePen 작성자, 소스 코드: Demo -- Only CSS: Water Surface

마우스는 지침을 따릅니다

물론 요소의 움직임을 표시할 필요는 없습니다. . 요소의 현재 위치를 캡처하기 위해 페이지를 덮는 div를 사용하는 기술은 마우스 이동 궤적 표시와 같은 다른 효과에도 사용할 수 있습니다.

순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)

1. 배경을 덮는 div: 0.5stransition-duration: 0.5s

2、当 hover 到元素背景 div 的时候,改变当前 hover 到的 div 的 transition-duration: 0s,并且 hover 的时候赋予背景色,这样当前 hover 到的 div 会立即展示

3、当鼠标离开 div,div 的 transition-duration 变回默认状态,也就是 transition-duration: 0.5s

2. 요소 배경 div에 마우스를 가져갈 때 현재 마우스를 올려놓은 div의 transition-duration: 0s를 변경하고 배경을 제공합니다. 현재 호버가 도착하면 즉시 색상이 표시됩니다

3. 마우스가 div를 벗어나면 div의 transition-duration이 기본 상태로 다시 변경됩니다. transition-duration: 0.5s, 배경 색상이 사라지므로 왼쪽 div의 배경 색상이 천천히 투명하게 전환되어 고스트 효과가 발생합니다

CodePen Demo -- 전환 취소

마지막으로

사실, 흥미로운 용도가 많이 있습니다. 관심이 있다면 학생들은 스스로 할 수 있고 더 많은 조합을 시도할 수 있습니다.

사람들은 종종 저에게 이런 이상한 용법이 실제 비즈니스에 적용될 수 있는지 묻습니다. 유용합니까? 글쎄요, 제 생각에는 이것이 실제로 비즈니스에 사용되지 않거나 응용 시나리오가 극도로 제한되어 있을 수 있지만, 이에 대해 더 많이 알면 문제가 발생할 때 더 많은 선택권을 얻을 수 있고, 더 많은 사고 공간을 확보할 수 있으며, 적어도 더 나은 발산적 사고를 할 수 있습니다. 무해하다.

생각지도 못했던 더 흥미로운 CSS를 여기에서 살펴볼 수 있습니다.

CSS-Inspiration -- CSS Inspiration

좋아, 이 글은 여기서 끝납니다. 도움이 되길 바랍니다. :)

이 기사는 다음에서 복제되었습니다: https://www.cnblogs.com/coco1s/p/10481872.html

더 멋진 CSS3, html5, javascript, jQuery 특수 효과 코드, 모두 포함: 🎜js 특수 효과 컬렉션🎜🎜

위 내용은 순수 CSS를 사용하여 마우스 따라가는 효과를 구현하는 방법은 무엇입니까? (자세한 코드 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 博客园에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

릴리스가없는 느낌 : 제정신 배치를 향한 여정릴리스가없는 느낌 : 제정신 배치를 향한 여정Apr 23, 2025 am 09:19 AM

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기