[javascript] 터치 이벤트를 사용하여 터치한 위치에 따라 개체를 회전시키는 방법은?
먼저 HTML 파일에 다음과 같이 div
요소를 생성합니다.
<div id="rotatableObject" style="width: 100px; height: 100px; background-color: #ff0000;"></div>
그런 다음 JavaScript 코드에서 해당 div
요소를 가져와서 터치 이벤트를 처리합니다.
document.getElementById('rotatableObject').addEventListener('touchstart', handleTouchStart, false);
document.getElementById('rotatableObject').addEventListener('touchmove', handleTouchMove, false);
var xDown = null;
var yDown = null;
function handleTouchStart(event) {
xDown = event.touches[0].clientX;
yDown = event.touches[0].clientY;
}
function handleTouchMove(event) {
if (!xDown || !yDown) {
return;
}
var xDiff = xDown - event.touches[0].clientX;
var yDiff = yDown - event.touches[0].clientY;
var angle = Math.atan2(yDiff, xDiff) * 180 / Math.PI;
document.getElementById('rotatableObject').style.transform = `rotate(-${angle}deg)`;
xDown = event.touches[0].clientX;
yDown = event.touches[0].clientY;
}
이 코드는 터치 시작 지점부터 현재 터치 지점까지의 각도를 계산하여 rotatableObject
를 해당 각도로 회전시킵니다. 이제 해당 요소를 터치하고 이동시키면 회전할 것입니다.