Skip to content

Instantly share code, notes, and snippets.

@1c7
Last active November 19, 2018 10:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 1c7/db5f5f0dfb4a5aa3b01d0a9692895259 to your computer and use it in GitHub Desktop.
Save 1c7/db5f5f0dfb4a5aa3b01d0a9692895259 to your computer and use it in GitHub Desktop.
Show number of finger touch screen in Real time
$("#camera-controller").on("touchstart", (e) => {
var fingerOnScreen = e.originalEvent.targetTouches.length;
$('#finger_count').text(fingerOnScreen);
});
$("#camera-controller").on("touchend", (e) => {
var fingerOnScreen = e.originalEvent.targetTouches.length;
$('#finger_count').text(fingerOnScreen);
});
@1c7
Copy link
Author

1c7 commented Nov 19, 2018

Here is simple sample code, hope it help

@1c7
Copy link
Author

1c7 commented Nov 19, 2018

Longer version

$("#camera-controller").on("touchstart", (e) => {
    e.preventDefault();
    var fingerOnScreen = e.originalEvent.targetTouches.length;
    // $('#finger_count').text(fingerOnScreen);
    place.touchingFinger = fingerOnScreen; // save it to somewhere else so we can use it later
});

var originalDistance = null;
$("#camera-controller").on("touchmove", (e) => {
    e.preventDefault();
    if(place.touchingFinger == 2){
        var x1 = e.originalEvent.changedTouches[0].clientX
        var y1 = e.originalEvent.changedTouches[0].clientY

        var x2 = e.originalEvent.changedTouches[1].clientX
        var y2 = e.originalEvent.changedTouches[1].clientY

        var a = x1 - x2;
        var b = y1 - y2;
        var c = Math.sqrt( a*a + b*b );

        if(originalDistance == null){
            originalDistance = c;
        }
        var change = c - originalDistance
        var newScale = place.zooming.zoomScale + (change/100);
        $('#finger_count').text(change);
        place.setZoomScale(newScale);
    }
});

$("#camera-controller").on("touchend", (e) => {
    e.preventDefault();
    var fingerOnScreen = e.originalEvent.targetTouches.length;
    // $('#finger_count').text(fingerOnScreen);
    place.touchingFinger = fingerOnScreen;
    if(fingerOnScreen <= 1){
        originalDistance = null;
    }
});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment