var pointerid = undefined;
var start, count;
var canvas;
function startup() {
canvas = document.getElementById("canvas");
canvas.addEventListener("pointerdown", pointerdown, false);
canvas.addEventListener("pointermove", pointermove, false);
canvas.addEventListener("pointerup", pointerup, false);
canvas.addEventListener("pointercancel", pointerup, false);
canvas.addEventListener("touchstart", touch, false);
canvas.addEventListener("touchmove", touch, false);
canvas.addEventListener("touchend", touch, false);
canvas.addEventListener("touchcancel", touch, false);
}
function pointerdown(event) {
event.preventDefault();
rect = canvas.getBoundingClientRect();
if ((event.pointerType == "pen" || event.pointerType == "mouse") && pointerid == undefined) {
pointerid = event.pointerId;
var x = event.clientX - rect.left,
y = event.clientY - rect.top;
start = new Date().getTime();
count = 1;
}
}
function pointermove(event) {
event.preventDefault();
if (pointerid == event.pointerId) {
var x = event.clientX - rect.left,
y = event.clientY - rect.top;
count++;
}
}
function pointerup(event) {
event.preventDefault();
if (pointerid == event.pointerId) {
var x = event.clientX - rect.left,
y = event.clientY - rect.top;
pointerid = undefined;
count++;
console.log((count / (new Date().getTime() - start) * 1000) + "pps");
}
}
function touch(event) {
if (pointerid != undefined) {
event.preventDefault();
}
}
startup();
<div id="canvas" style="width:2000px; height:2000px; ">
</div>