Begrenze die Anzahl der erstellten Finger auf MAX_TOUCHES und verhindere die Auswahl, wenn die maximale Anzahl erreicht ist.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
document.addEventListener('DOMContentLoaded', function(){
|
document.addEventListener('DOMContentLoaded', function(){
|
||||||
const stage = document.getElementById('stage');
|
const stage = document.getElementById('stage');
|
||||||
const touches = new Map(); // id -> {el,x,y}
|
const touches = new Map(); // id -> {el,x,y}
|
||||||
|
const MAX_TOUCHES = /iPhone/.test(navigator.userAgent) ? 5 : 20;
|
||||||
let selecting = false;
|
let selecting = false;
|
||||||
let selectionDone = false;
|
let selectionDone = false;
|
||||||
let selectionTimer = null;
|
let selectionTimer = null;
|
||||||
@@ -131,9 +132,12 @@ document.addEventListener('DOMContentLoaded', function(){
|
|||||||
stage.addEventListener('touchstart', function(e){
|
stage.addEventListener('touchstart', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const changed = Array.from(e.changedTouches || []);
|
const changed = Array.from(e.changedTouches || []);
|
||||||
changed.forEach(t=>createFinger(t));
|
const prevSize = touches.size;
|
||||||
|
changed.forEach(t=>{ if(touches.size < MAX_TOUCHES) createFinger(t); });
|
||||||
|
if(touches.size > prevSize){
|
||||||
cancelSelection();
|
cancelSelection();
|
||||||
selectionTimer = setTimeout(startSelectionIfNeeded, 700);
|
selectionTimer = setTimeout(startSelectionIfNeeded, 700);
|
||||||
|
}
|
||||||
}, {passive:false});
|
}, {passive:false});
|
||||||
stage.addEventListener('touchmove', function(e){
|
stage.addEventListener('touchmove', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user