Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从触摸屏激活时不触发Pointerup的事件侦听器_Javascript_Canvas_Mouseevent_Addeventlistener - Fatal编程技术网

Javascript 从触摸屏激活时不触发Pointerup的事件侦听器

Javascript 从触摸屏激活时不触发Pointerup的事件侦听器,javascript,canvas,mouseevent,addeventlistener,Javascript,Canvas,Mouseevent,Addeventlistener,我正在用HTML画布编写一个简单的javascript绘图程序,它可以让你画一条线,通过一个按钮改变线的颜色,看看你用元素和一些涉及innerText的javascript选择了哪种颜色,当与鼠标或触控板一起使用时,效果非常好,然而,当它在触摸屏上使用时,它会画一小段线,然后停止。我已经跟踪到了pointerup事件,但我不知道它到底出了什么问题。你自己看看吧- 变色 清除绘图程序 黑色 var canvas=document.getElementById('dr'); var ctx=c

我正在用HTML画布编写一个简单的javascript绘图程序,它可以让你画一条线,通过一个按钮改变线的颜色,看看你用元素和一些涉及innerText的javascript选择了哪种颜色,当与鼠标或触控板一起使用时,效果非常好,然而,当它在触摸屏上使用时,它会画一小段线,然后停止。我已经跟踪到了pointerup事件,但我不知道它到底出了什么问题。你自己看看吧-


变色
清除绘图程序

黑色

var canvas=document.getElementById('dr'); var ctx=canvas.getContext('2d'); 变量行=假 函数drawType(){ 如果(行===真){ 行=假; }否则{ 行=真; } } var绘图=错误; 函数类型(){} //如果鼠标按下,则启动绘图 canvas.addEventListener(“pointerdown”,()=>{ 绘图=真; }) //如果鼠标已启动,请停止绘图 canvas.addEventListener(“pointerup”,()=>{ 图纸=假; }); //将事件侦听器添加到画布,以便在用户移动 //把鼠标放在上面,鼠标就下来了 变量颜色=['DarkRed'、'DarkOrange'、'Gold'、'Green', ‘中蓝色’、‘靛蓝’、‘紫罗兰’、‘黑色’] var displayColors=['r'、'红色'、'橙色'、'黄色'、'绿色', “蓝色”、“靛蓝”、“紫色”、“黑色”] 变量选择器=0 var color=document.getElementById('color')) var selectedColor=颜色[选择器]; 函数switchColor(){ 如果(选择器<8){ 选择器=选择器+1; }否则{ 选择器=1; } color.innerText=显示颜色[选择器]; selectedColor=颜色[选择器]; } canvas.addEventListener('pointermove',(事件)=>{ //此处的\/仅用于记录目的。 var p=document.getElementById('p') p、 innerText=绘图; //如果绘图模式为真(如果鼠标按钮按下) 如果(图==真){ //将矩形放在画布上的 //老鼠 ctx.fillStyle=颜色[selector-1]; ctx.fillRect(event.clientX,event.clientY,4,4) } }); //onmouse向下onmouse向上移动onmouse向上onTouchEnd 函数clean(){ var canvas=document.getElementById('dr'); var ctx=canvas.getContext('2d'); ctx.clearRect(0,060480); }
这是否回答了您的问题?不,pointermove正在工作,我想,你看到发生了什么吗?