Javascript 按住两个手指触摸以启用DIV上的指针事件不会';不要改变它的行为,直到触摸被释放

Javascript 按住两个手指触摸以启用DIV上的指针事件不会';不要改变它的行为,直到触摸被释放,javascript,css,pointer-events,Javascript,Css,Pointer Events,我正在构建一个电路模拟器,上面有一个画布层用于绘制导线,底部有一个svg层用于交互输入。画布层具有指针事件:none以允许在底部使用svg输入(使其对指针事件“透明”)。另外,我需要设置指针事件:all,以便用户在移动设备上通过按压缩放来缩放应用程序 我试图在按下两个手指时切换指针事件,并在画布层中获得我想要的行为,这样我可以在触摸按下时缩放和移动屏幕,并在仅使用一个手指时与svg元素交互 有没有一种方法可以在不释放手指的情况下“更新”画布属性?我的意思是当我进行两次触摸时启用指针事件,当我释放

我正在构建一个电路模拟器,上面有一个画布层用于绘制导线,底部有一个svg层用于交互输入。画布层具有
指针事件:none
以允许在底部使用svg输入(使其对指针事件“透明”)。另外,我需要设置
指针事件:all
,以便用户在移动设备上通过按压缩放来缩放应用程序

我试图在按下两个手指时切换指针事件,并在画布层中获得我想要的行为,这样我可以在触摸按下时缩放和移动屏幕,并在仅使用一个手指时与svg元素交互

有没有一种方法可以在不释放手指的情况下“更新”画布属性?我的意思是当我进行两次触摸时启用指针事件,当我释放屏幕时禁用指针事件

我使用touch events监听器在画布层上进行了更改,但该行为仅在下一个指针事件发生之前有效

let canvasC = document.getElementById('cnvParent');
document.addEventListener( 'touchstart', touchScreen );

touchScreen( e ) {
    document.addEventListener( 'touchend', touchEndEl );
    if (e.touches.length > 2) {
      togglePE();
    }
}

togglePE() {
    if (this.zooming) {
      canvasC.style = "pointer-events: none";
      this.zooming = false;
    }
    else {
      canvasC.style = "pointer-events: all";
      this.zooming = true;
    }
}

你能提供一些代码吗?它不一定是所有的东西,只是一个最小的可复制部分。我尝试在我的两个手指在屏幕上触摸时模拟放松和按下触摸,但似乎元素不知道它的css属性已经改变了。请提供一些代码好吗?它不一定是所有的东西,只是一个可重复使用的最小部分。我尝试在我的两个手指在屏幕上触摸时模拟放松和按下触摸,但似乎元素不知道它的css属性已经改变