CSS 변환 배율을 사용하여 올바른 jQuery 끌기/크기 조정 동작을 달성하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-27 08:24:31
원래의
420명이 탐색했습니다.

How to Achieve Correct jQuery Drag/Resize Behavior with CSS Transform Scale?

CSS 변환 배율로 jQuery 드래그/크기 조정 수정

배경

CSS 변환 적용 요소를 추가한 다음 해당 하위 항목에 jQuery의 드래그 및 크기 조정이 가능한 플러그인을 사용하면 마우스 커서와 드래그되거나 크기가 조정된 요소 사이에 정렬이 잘못될 수 있습니다. 이는 요소에 적용된 배율 인수 때문입니다.

jQuery 패치 솔루션

이전 솔루션에서는 jQuery의 드래그 가능 및 크기 조정 가능 플러그인을 패치하여 마우스 오프셋을 조정했습니다. 스케일 팩터. 이 방법을 사용하려면 플러그인의 소스 코드를 수정해야 합니다.

대체 솔루션: 콜백 핸들러

대체 솔루션은 크기 조정 및 드래그 가능한 플러그인에서 제공하는 콜백 핸들러를 사용하는 것입니다. 이렇게 하면 jQuery를 패치할 필요가 없습니다.

크기 조정 가능한 수정

<br>$(this).ressible({</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">minWidth: -(contentElem.width()) * 10,  
minHeight: -(contentElem.height()) * 10,  
resize: function(event, ui) {

    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;

}
로그인 후 복사

});

크기 조정 핸들러에서 너비와 높이의 변화를 계산하고 확대/축소 배율의 역수를 적용하여 새 너비와 높이를 조정하고 그에 따라 ui.size 개체.

Draggable Fix

<br>$(this).draggable({</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">handle: '.drag-handle',
start: function(event, ui) {
    ui.position.left = 0;
    ui.position.top = 0;
},
drag: function(event, ui) {

    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;

}
로그인 후 복사

});

드래그 핸들러에서 왼쪽 및 위쪽 위치의 변화를 계산하고 확대/축소 배율의 역수를 적용하여 새로운 왼쪽 및 위쪽 위치를 조정하고 이에 따라 ui.position 개체를 사용합니다.

결론

콜백 핸들러를 사용하는 이 대체 솔루션은 CSS가 배율로 변환될 때 드래그/크기 조정 동작을 수정하는 비침습적인 방법을 제공합니다. 적용되었습니다.

위 내용은 CSS 변환 배율을 사용하여 올바른 jQuery 끌기/크기 조정 동작을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
이전 기사:브라우저 호환성과 디자인 유연성의 균형을 가장 잘 유지하는 HTML5 재설정 CSS 솔루션은 무엇입니까? 다음 기사:CSS를 사용하여 HTML 테이블에서 텍스트를 수직으로 회전하는 방법은 무엇입니까?
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
관련 주제
더>
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿