2012-11-29 19 views
5

Trong ứng dụng web của tôi, tôi có một div sẽ thay đổi chiều cao và chiều rộng dựa trên hướng véo. ví dụ nếu người dùng chụm theo chiều ngang, nó sẽ thay đổi chiều rộng, để véo dọc nó sẽ thay đổi chiều cao.Làm thế nào để tìm hướng pinch trong javascript?

Tôi đang sử dụng các sự kiện cử chỉ

var scaleMe = $("#scaleMe"); 
scaleMe[0].ongesturestart = function (e) { 
    height = scaleMe .height(); 
} 

scaleMe[0].ongesturechange = function (e) { 
    e.preventDefault();     
    var scaleheight = (scaleMe.height() * e.scale); 
    scaleMe.height(Math.min(Math.max(scaleheight, 50), 400)); 
} 

Có cách nào để tìm ra hướng pinch?

+1

Vì vậy, bạn không muốn chia tỷ lệ? Với tỷ lệ tôi có nghĩa là chiều cao và chiều rộng vẫn tương đối. Nếu bạn có nghĩa là thay đổi kích thước, không sử dụng cử chỉ chụm, bởi vì người dùng mong đợi một tỷ lệ, không phải là một thay đổi kích cỡ. –

Trả lời

1

Nếu tôi hiểu một cách chính xác ..

vào "guesturestart" bạn nên lưu véo tọa độ của một trong những cử chỉ (hoặc bạn có thể lưu tất cả cho độ chính xác tốt hơn)

var allTouches = event.originalEvent. chạm;

var prevTouchX = allTouches [0] .pageX;

var prevTouchY = allTouches [0] .pageY;

sau đó, vào "guesturechange" bạn phải tính toán, trong những gì phong trào trục là còn

var allTouches = event.originalEvent.touches;

var touchX = allTouches [0] .pageX;

var touchY = allTouches [0] .pageY;

var propertyToChange = null;

if (Math.abs (touchX - prevTouchX)> Math.abs (nhạy cảm - prevTouchY))> {

propertyToChange = 'width';

} else {

propertyToChange = 'height';

}

Hy vọng nó sẽ là hữu ích.

Các vấn đề liên quan