찾다
웹 프론트엔드프런트엔드 Q&AVue는 마우스 드래그 컨트롤 너비를 구현합니다.

Vue.js는 인기 있는 JavaScript 프레임워크일 뿐만 아니라 매우 유연하고 강력한 라이브러리입니다. 이 프레임워크를 통해 개발자는 프런트엔드 애플리케이션을 효율적으로 구현할 수 있습니다. 이번 글에서는 Vue.js를 사용하여 너비에 대한 마우스 드래그 제어를 구현하는 방법을 소개하겠습니다.

너비를 제어하기 위해 마우스 드래그를 구현하는 것은 많은 웹 애플리케이션에서 일반적인 상호 작용입니다. 예를 들어 테두리 막대나 슬라이더를 드래그하여 컨테이너 크기를 조정하거나 이미지 크기를 조정합니다. 이 상호작용의 가장 기본적인 UI 부분은 드래그 가능한 요소와 대상 요소인 컨테이너입니다. Vue.js에서는 지시문과 이벤트 핸들러를 사용하여 드래그 앤 드롭을 구현합니다.

첫 번째 단계는 Vue 인스턴스에서 드래그를 트리거하는 명령을 정의하는 것입니다. "v-draggable" 지시어는 드래그 요소에 바인딩되어야 합니다. 이 지시어는 Vue 사용자 정의 지시어 API를 사용하여 전역 또는 로컬 구성 요소로 등록됩니다.

Vue.directive('draggable', {
바인딩(el, 바인딩, vnode) {

  let xOffset = 0;
  let yOffset = 0;

  const handleMouseDown = (event) => {
      if (!event.target.classList.contains('drag-handle')) {
          return;
      }

      xOffset = event.clientX;
      yOffset = event.clientY;

      document.addEventListener('mousemove', handleMouseMove);
      document.addEventListener('mouseup', handleMouseUp);
  };

  const handleMouseMove = (event) => {
      const currentX = event.clientX;
      const currentY = event.clientY;

      const dx = currentX - xOffset;
      const dy = currentY - yOffset;

      const newWidth = el.offsetWidth + dx;

      vnode.context[binding.expression] = newWidth;
  };

  const handleMouseUp = () => {
      document.removeEventListener('mousemove', handleMouseMove);
      document.removeEventListener('mouseup', handleMouseUp);
  };

  el.querySelector('.drag-handle').addEventListener('mousedown', handleMouseDown);

}
});

지시문에서는 마우스 다운 이벤트(mousedown)를 정의합니다. 이벤트를 지시문의 바인딩 요소(el)에 바인딩합니다. 이벤트가 발생한 후 요소를 기준으로 마우스 오프셋을 기록하여 드래그하는 동안 요소의 새 위치를 계산할 수 있습니다. 그런 다음 mousemove 이벤트에서 오프셋을 계산하고 새 너비를 파악하여 Vue 인스턴스에 바인딩합니다.

마지막으로 사용자가 드래그 영역을 떠난 후에도 mouseup 이벤트가 감지될 수 있도록 mouseup 이벤트(mouseup)를 문서 객체에 바인딩하고 mousemove 및 mouseup 이벤트에 대한 리스너를 지웁니다.

다음으로 "v-draggable" 지시어를 사용하여 드래그 요소를 Vue 구성 요소의 데이터 속성에 바인딩합니다.


드래그 미


Vue.comComponent('크기 조정 가능', {
템플릿: `

<div class="resizable">
  <div class="wrapper">
    <div class="panel-a">
      <div v-draggable="width" class="drag-area">
        <div class="drag-handle"></div>
      </div>
    </div>
    <div class="panel-b" :style="{ width: width + 'px' }"></div>
  </div>
</div>

`,
data() {

return {
  width: 400,
};

},
}) ;

이 예에서는 React 구성 요소 "크기 조정 가능"을 만듭니다. 드래그 가능한 영역과 컨테이너로 구성됩니다. v-draggable 지시문을 사용하여 드래그 요소를 너비 값에 바인딩하고 해당 요소는 "drag-area" 클래스의 컨테이너에 추가됩니다.

마지막으로 구성 요소를 DOM에 렌더링합니다.

new Vue({
el: '#app',
});

이러한 방식으로 Vue.js를 사용하여 드래그 앤 드롭을 구현하여 드래그된 요소의 너비를 제어하는 ​​데 성공했습니다. Vue.js는 많은 유연성과 확장성을 제공하므로 이러한 종류의 상호 작용을 매우 쉽게 개발할 수 있습니다.

위 내용은 Vue는 마우스 드래그 컨트롤 너비를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
React의 강력한 커뮤니티 및 생태계의 이점React의 강력한 커뮤니티 및 생태계의 이점Apr 29, 2025 am 12:46 AM

React'sstrongcommunityandecosystemoffernumerousbenefits : 1) impliceAccesstosolutionsThroughplatformslikestackOverflowandGitHub; 2) exealthoflibrariesandTools, walsuicomponentlibrarieslikeChakraui, thatenhancedevelopmenticificients; 3)

모바일 개발을위한 기본 반응 : 크로스 플랫폼 앱 구축모바일 개발을위한 기본 반응 : 크로스 플랫폼 앱 구축Apr 29, 2025 am 12:43 AM

reftnativeIschosenFormoBiledevelopmentBecauseItAllowsDeveloperstowRiteCodeOndDeployIntonMultiplePlatforms, DevelopmentTimeAndCosts.itoffersnear-NativePerformance, AthrivingCommunity, AndleverAgesexistingWebDevelopmentsKills.keyTomasteringRea

React의 usestate ()로 상태를 올바르게 업데이트합니다React의 usestate ()로 상태를 올바르게 업데이트합니다Apr 29, 2025 am 12:42 AM

RECT에서 usestate () 상태의 올바른 업데이트는 상태 관리의 세부 사항을 이해해야합니다. 1) 기능 업데이트를 사용하여 비동기 업데이트를 처리합니다. 2) 상태를 직접 수정하지 않도록 새 상태 객체 또는 배열을 만듭니다. 3) 단일 상태 객체를 사용하여 복잡한 양식을 관리하십시오. 4) 셰이크 방지 기술을 사용하여 성능을 최적화하십시오. 이러한 방법은 개발자가 일반적인 문제를 피하고보다 강력한 반응 응용 프로그램을 작성하는 데 도움이 될 수 있습니다.

React의 구성 요소 기반 아키텍처 : 확장 가능한 UI 개발의 열쇠React의 구성 요소 기반 아키텍처 : 확장 가능한 UI 개발의 열쇠Apr 29, 2025 am 12:33 AM

React의 구성된 아키텍처는 모듈성, 재사용 성 및 유지 관리를 통해 확장 가능한 UI 개발 효율성을 만듭니다. 1) 모듈성을 사용하면 UI가 독립적으로 개발되고 테스트 될 수있는 구성 요소로 분해 될 수 있습니다. 2) 구성 요소 재사용성은 시간을 절약하고 다른 프로젝트에서 일관성을 유지합니다. 3) 유지 관리는 문제 포지셔닝 및 업데이트를 더 쉽게 만들어 지지만 구성 요소는 압도성과 깊은 둥지를 피해야합니다.

React를 사용한 선언 프로그래밍 : UI 논리를 단순화합니다React를 사용한 선언 프로그래밍 : UI 논리를 단순화합니다Apr 29, 2025 am 12:06 AM

RECT에서 선언 프로그래밍은 UI의 원하는 상태를 설명하여 UI 논리를 단순화합니다. 1) UI 상태를 정의함으로써 RECT는 DOM 업데이트를 자동으로 처리합니다. 2)이 방법은 코드를 더 명확하고 유지 관리하기 쉽게 만듭니다. 3) 그러나 주 경영 복잡성과 최적화 된 재 렌더링에주의를 기울여야합니다.

React의 생태계의 크기 : 복잡한 풍경 탐색React의 생태계의 크기 : 복잡한 풍경 탐색Apr 28, 2025 am 12:21 AM

Tonavigatereact'scomplexecosystemectically, worldsandlibraries, endegeirstrengthsandweaknesses, andintegrateTheMtoEnhancedEvelopment.StartWithCorereaCtConceptSandusestate, gragratevallystecorecomplexSolutionsormerObxasnee

React가 키를 사용하여 목록 항목을 효율적으로 식별하는 방법React가 키를 사용하여 목록 항목을 효율적으로 식별하는 방법Apr 28, 2025 am 12:20 AM

ReactuseskeyStoefficificificificientifyListItemsByProvingableIdentityToeachelement.1) KeysLACKERACERACTTOTRACKCHANGENLISTSWITHOUTRE-RENDERINGENTIRELIST.2) 선택 ARRAYINDICES.3) 교정 keyUsagesSENTIFORYLATIONTIMPROFFERCANC

React의 키 관련 문제 디버깅 : 문제 식별 및 해결React의 키 관련 문제 디버깅 : 문제 식별 및 해결Apr 28, 2025 am 12:17 AM

KeysinReactareCrucialforopiTizingProcess 및 ManingDynamicListSeffecticaly.tospotandfixkey-RelatedIssues : 1) addUniqueKeyStolistemStoavoidwarningsandperformanceIssues, 2) indainiqueIdentifiers, 3) 보장

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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

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