현대 웹 개발에서 상호작용은 사용자의 참여를 유도하고 역동적인 사용자 경험을 창출하는 데 핵심입니다. 상호작용성을 추가하는 한 가지 방법은 요소를 드래그 가능하게 만드는 것입니다. 이번 게시물에서는 HTML, CSS, JavaScript를 사용하여 드래그 가능한 요소를 생성하는 방법을 살펴보겠습니다.
출력:
HTML 구조
기본 HTML 구조부터 시작해 보겠습니다. 드래그 가능하게 만들고 싶은 간단한 div 요소를 생성하겠습니다. 코드는 다음과 같습니다.
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Draggable Element</title> <link rel="stylesheet" href="styles.css"> <div class="draggable" id="draggableElement">Drag me!</div> <script src="script.js"></script>
이 코드에는 draggable 클래스와 draggableElement ID가 있는 div가 있습니다. 이것이 드래그 가능하게 만드는 요소가 될 것입니다.
CSS를 사용하여 드래그 가능한 요소 스타일 지정
.draggable { position: absolute; cursor: grab; width: 100px; height: 100px; background-color: #007bff; color: #fff; text-align: center; line-height: 100px; border-radius: 8px; user-select: none; } .draggable.dragging { cursor: grabbing; }
이 CSS에서는 요소의 스타일을 지정하기 위해 .draggable 클래스를 정의합니다. 페이지 내에서 자유롭게 이동할 수 있도록 위치를 절대값으로 설정했습니다. 커서 속성은 요소가 드래그 가능함을 나타내기 위해 잡기로 설정됩니다. 또한 너비, 높이, 배경색, 텍스트 색상, 텍스트 정렬 및 줄 높이를 정의하여 텍스트를 세로 및 가로 가운데에 배치합니다. 둥근 모서리에 테두리 반경이 추가되고 드래그하는 동안 텍스트 선택을 방지하기 위해 user-select: none이 사용됩니다. 자세히 보기
JavaScript로 상호작용 추가
let draggableElement = document.getElementById('draggableElement'); let offsetX, offsetY; draggableElement.addEventListener('mousedown', startDragging); draggableElement.addEventListener('mouseup', stopDragging); function startDragging(e) { e.preventDefault(); offsetX = e.clientX - draggableElement.getBoundingClientRect().left; offsetY = e.clientY - draggableElement.getBoundingClientRect().top; draggableElement.classList.add('dragging'); document.addEventListener('mousemove', dragElement); } function dragElement(e) { e.preventDefault(); let x = e.clientX - offsetX; let y = e.clientY - offsetY; draggableElement.style.left = x + 'px'; draggableElement.style.top = y + 'px'; } function stopDragging() { draggableElement.classList.remove('dragging'); document.removeEventListener('mousemove', dragElement); }
드래깅 시작: 사용자가 요소에서 마우스 버튼을 누를 때 startDragged 함수가 트리거됩니다. 이 기능은:
- e.preventDefault()를 사용하여 이벤트의 기본 동작을 방지합니다.
- 마우스 위치에서 요소의 왼쪽 상단 모서리 위치를 빼서 오프셋을 계산합니다.
- 커서를 변경할 수 있는 드래그 클래스를 추가합니다.
- 문서에 mousemove 이벤트에 대한 이벤트 리스너를 추가하여 dragElement 함수를 트리거합니다.
드래그 요소: 마우스가 움직일 때 dragElement 함수가 실행됩니다. 이 기능은:
- 이벤트의 기본 동작을 방지합니다.
- 마우스 위치와 오프셋을 기반으로 요소의 새 위치를 계산합니다.
- 요소의 왼쪽 및 위쪽 CSS 속성을 업데이트하여 새 위치로 이동합니다.
드래깅 중지: 사용자가 마우스 버튼을 놓으면 stopDragged 기능이 실행됩니다. 이 기능은:
- 드래그 클래스를 제거하여 커서를 원래 상태로 되돌립니다.
- 문서에서 mousemove 이벤트 리스너를 제거하여 드래그를 중지합니다. 자세히 알아보기
결론:
이벤트 리스너와 DOM 조작의 기본 사항을 이해함으로써 웹 프로젝트에 상호작용성을 추가하여 사용자 경험을 향상시킬 수 있습니다.
전체 기사 읽기 - 여기를 클릭하세요
위 내용은 HTML, CSS 및 JavaScript를 사용하여 드래그 가능한 요소 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Axios 또는 Fetch를 사용하여 React에서 데이터를 가져 오는 데 익숙합니다. 데이터 가져 오기를 처리하는 일반적인 방법은 다음과 같습니다.

나는 정말 좋아한다 : 초점- 어린이가 초점을 맞출 때 부모 요소를 기본적으로 선택할 수있는 매우 유용한 선택기입니다.

누구나 요리 할 수 있다는 것은 기술적으로 사실입니다. 그러나 실제로 맛있는 식사를 준비하는 방법을 알고있는 것과 당신과 마찬가지로 최고를 기대하는 것 사이에는 차이가 있습니다.

React Ecosystem은 모두 드래그 앤 드롭의 상호 작용에 중점을 둔 많은 라이브러리를 제공합니다. 우리는 React-dnd, React-beautiful-dnd를 가지고 있습니다.

나는 자주 배경 클립을 사용한다고 말할 수 없습니다. I ' D WART IT IT는 일상적인 CSS 작업에서 거의 사용되지 않았습니다. 그러나 나는 Stefan Judis의 게시물에서 그것을 상기시켰다.

requestAnimationFrame을 사용하여 애니메이션은 쉬워야하지만 React의 문서를 철저히 읽지 않으면 몇 가지 문제가 발생할 수 있습니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
