JavaScript는 끈적함을 구현합니다.
May 17, 2023 pm 06:12 PM프런트 엔드 개발에서는 드래그 앤 드롭, 팝업 창 등과 같은 특수 효과를 구현해야 하는 경우가 종종 있습니다. 그 중에서도 끈적이는 효과도 매우 흥미롭고 실용적인 효과입니다. 이 기사에서는 JavaScript를 사용하여 끈적이는 효과를 얻는 방법을 소개합니다.
1. 끈끈이 효과 소개
끈끈이 효과는 요소를 드래그하면 해당 요소가 지정된 요소에 달라붙어 지정된 요소 내에서 자유롭게 이동할 수 있는 효과를 말합니다. 이 효과는 파일 업로드 끌기, 직소 퍼즐 등과 같은 응용 프로그램 시나리오에서 매우 널리 퍼져 있습니다.
2. 끈적끈적한 효과를 얻기 위한 단계
- 드래그 가능한 요소 만들기
먼저 드래그 가능한 요소를 만들어야 합니다. 구현 과정에서 HTML, CSS 및 JavaScript를 사용하여 완료할 수 있습니다. 예를 들어 다음 코드는 다음과 같습니다.
1 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
위 코드에서는 "drag" 클래스를 사용하여 div 요소를 만들고 여기에 스타일을 할당했습니다. 다음으로 드래그 효과를 얻기 위해 JavaScript를 통해 요소에 mousedown, mousemove 및 mouseup 이벤트를 추가했습니다.
- 지정된 요소 만들기
고정 가능한 대상인 지정된 요소를 만들어야 합니다. 이 예에서는 지정된 요소로 "drop" 클래스가 있는 div 요소를 사용합니다. 예를 들어, 다음 코드는
1 |
|
1 2 3 4 5 6 7 8 |
|
- 끈적 효과를 얻으려면
드래그된 요소가 지정된 요소 내에서 해제될 때 해당 요소를 지정된 요소에 부착하고 요소 내에서 자유롭게 이동해야 합니다. 구현 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
위 코드에서는 getBoundingClientRect() 메서드를 통해 지정된 요소의 직사각형 영역을 얻습니다. 그런 다음 mouseup 이벤트에서 드래그된 요소의 위치가 직사각형 영역 내에 있는지 확인합니다. 이 영역 내에 있으면 지정된 요소에 드래그 요소를 추가하고 지정된 요소 내에서 자유롭게 이동할 수 있도록 위치를 상대 위치로 설정합니다.
3. 끈적끈적 효과 최적화
위의 코드는 이미 기본적인 끈적끈적한 효과를 얻을 수 있지만, 효과의 부드러움과 신뢰성을 향상시키기 위해 주의해야 할 몇 가지 세부 사항이 여전히 있습니다.
- 드래그 요소 마우스 팔로우
요소를 드래그할 때 사용자 경험을 향상시키기 위해 드래그된 요소의 중앙에 마우스 위치를 지정할 수 있습니다. 다음은 구현 코드입니다.
1 2 3 4 5 6 7 8 9 |
|
- 드래그된 요소의 잠금을 해제합니다
구현 코드에서는 드래그 효과를 얻기 위해 document.onmousemove 및 document.onmouseup을 사용합니다. 그러나 드래그된 요소가 상위 요소 외부로 이동하면 mousemove 및 mouseup 이벤트가 계속 트리거되어 드래그된 요소를 놓을 수 없게 됩니다. 이 문제를 해결하려면 mousedown 이벤트에서 드래그된 요소를 잠그고 mouseup 이벤트에서 해제해야 합니다. 구현 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
- Sticky 요소 경계 제한
드래그된 요소가 지정된 요소 밖으로 이동할 때 예기치 않은 동작이 발생합니다. 따라서 접착 효과에 경계 제약 조건을 추가해야 합니다. 구현 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
위 코드에서는 Math.max 및 Math.min 메서드를 사용하여 드래그되는 요소의 경계를 제한합니다. 이렇게 하면 드래그된 요소가 지정된 요소의 경계 밖으로 이동할 수 없습니다.
4. 요약
이 글에서는 JavaScript를 사용하여 끈끈한 효과를 얻는 방법을 소개하고 구현 과정에서 최적화에 대해 자세히 설명합니다. 실제 시나리오에서는 끈적이 효과가 매우 유용하며 이 문서에서 설명하는 방법은 다른 애플리케이션 시나리오에도 적용할 수 있습니다. 끈적끈적한 효과는 간단해 보이지만, 아직 세부 사항이 많아 구현자가 좀 더 주의를 기울여야 합니다.
위 내용은 JavaScript는 끈적함을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까?

React Reconciliation 알고리즘은 어떻게 작동합니까?

카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까?

JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까?

React의 성능 최적화 기술 (메모 화, 코드 분할, 게으른로드)은 무엇입니까?

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까?
