웹 프론트엔드 CSS 튜토리얼 CSS 변환 배율로 jQuery 드래그/크기 조정 문제를 해결하는 방법은 무엇입니까?

CSS 변환 배율로 jQuery 드래그/크기 조정 문제를 해결하는 방법은 무엇입니까?

Oct 26, 2024 pm 01:32 PM

How to Fix jQuery Drag/Resize Issues with CSS Transform Scale?

CSS 변환 배율을 사용한 jQuery 드래그/크기 조정

문제: CSS 변환을 적용할 때 특히 변환: 행렬 (0.5, 0, 0, 0.5, 0, 0);을 div에 추가하고 하위 요소에 jQuery의 draggable() 및 resizing() 플러그인을 사용하면 jQuery에 의한 변경 사항이 마우스 위치와 "동기화되지 않습니다".

해결책: jQuery 플러그인 패치

jQuery 플러그인, 특히 $.ui.draggable의 _mouseStart 및 _generatePosition 메서드를 패치하여 해결책을 찾았습니다. 이 접근 방식은 효과적으로 작동했지만 원래 플러그인 코드를 수정해야 했습니다.

대체 솔루션: 콜백 핸들러 사용

그러나 플러그인 수정이 필요하지 않은 보다 최적의 솔루션이 발견되었습니다. jQuery 플러그인을 직접 사용합니다. 콜백 핸들러를 활용하면 현재 확대/축소 배율을 기준으로 드래그 및 크기 조정이 가능한 요소의 위치와 크기를 조정할 수 있습니다.

크기 조정이 가능한 변환 배율 수정:

$(this).resizable({
    minWidth: -(contentElem.width()) * 10, 
    minHeight: -(contentElem.height()) * 10, 
    resize: function(event, ui) {
        // Adjust width and height based on zoom scale
        var changeWidth = ui.size.width - ui.originalSize.width;
        var newWidth = ui.originalSize.width + changeWidth / zoomScale;

        var changeHeight = ui.size.height - ui.originalSize.height;
        var newHeight = ui.originalSize.height + changeHeight / zoomScale;

        ui.size.width = newWidth;
        ui.size.height = newHeight;
    }
});
로그인 후 복사

드래그 가능을 위한 변환 스케일 수정:

$(this).draggable({
    handle: '.drag-handle', 
    start: function(event, ui) {
        ui.position.left = 0;
        ui.position.top = 0;
    }, 
    drag: function(event, ui) {
        // Adjust left and top positions based on zoom scale
        var changeLeft = ui.position.left - ui.originalPosition.left;
        var newLeft = ui.originalPosition.left + changeLeft / (( zoomScale));

        var changeTop = ui.position.top - ui.originalPosition.top;
        var newTop = ui.originalPosition.top + changeTop / zoomScale;

        ui.position.left = newLeft;
        ui.position.top = newTop;
    }
});
로그인 후 복사

이 접근 방식은 jQuery를 사용하여 스케일링된 요소 내에서 드래그 및 크기 조정 이벤트를 처리하기 위한 깔끔하고 비침습적인 솔루션을 제공합니다. 핵심 기능.

위 내용은 CSS 변환 배율로 jQuery 드래그/크기 조정 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Mar 07, 2025 am 11:33 AM

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성

WordPress 블록 및 요소에 상자 그림자를 추가합니다 WordPress 블록 및 요소에 상자 그림자를 추가합니다 Mar 09, 2025 pm 12:53 PM

WordPress 블록 및 요소에 상자 그림자를 추가합니다

스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례 스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례 Mar 08, 2025 am 09:45 AM

스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 Mar 02, 2025 am 09:03 AM

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다

GraphQL 캐싱 작업 GraphQL 캐싱 작업 Mar 19, 2025 am 09:36 AM

GraphQL 캐싱 작업

첫 번째 맞춤형 전환을 만듭니다 첫 번째 맞춤형 전환을 만듭니다 Mar 15, 2025 am 11:08 AM

첫 번째 맞춤형 전환을 만듭니다

node.js 및 Express의 Multer와 함께 파일 업로드 node.js 및 Express의 Multer와 함께 파일 업로드 Mar 02, 2025 am 09:15 AM

node.js 및 Express의 Multer와 함께 파일 업로드

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 Mar 04, 2025 am 10:22 AM

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교

See all articles