Javascript 画布上的绘图点不适用于safari
我想用canvas在mouseover上画点:我的实现在chrome和firefox上运行良好,但由于某些原因,它在safari上不起作用(然而,在mouseover上画一条线在safari上起作用) 任何帮助都将不胜感激 ---> 代码: 根据法律规定,Safari是这样做的Javascript 画布上的绘图点不适用于safari,javascript,html,canvas,safari,Javascript,Html,Canvas,Safari,我想用canvas在mouseover上画点:我的实现在chrome和firefox上运行良好,但由于某些原因,它在safari上不起作用(然而,在mouseover上画一条线在safari上起作用) 任何帮助都将不胜感激 ---> 代码: 根据法律规定,Safari是这样做的 从路径中删除所有零长度 从路径中删除任何不包含线的子路径(即只有一个点的子路径) 在追踪之前 您的路径完全由这些零长度线段组成(moveTo(x,y);lineTo(x,y)),因此没有留下任何要绘制的内容 其他浏览器在
moveTo(x,y);lineTo(x,y)
),因此没有留下任何要绘制的内容
其他浏览器在这里有缺陷:
要做您想做的事情,即画一个圆,请使用arc()
方法。另外,不要忘记调用beginPath()
,否则您的路径将不断增长,最终会在同一个位置反复移动,从而导致糟糕的图形和性能
const canvas=document.querySelector(“canvas”);
设x=0;
设y=0;
常数半径=7.5;
const context=canvas.getContext(“2d”);
context.strokeStyle=“黑色”;
canvas.addEventListener(“mousemove”,函数(e){
x=e.offsetX;
y=e.offsetY;
context.beginPath();
移动到(x+半径,y);
弧(x,y,半径,0,数学PI*2);
context.fill();
});代码>
let canvas = document.querySelector("canvas");
let x = 0;
let y = 0;
let context = canvas.getContext("2d");
context.strokeStyle = "black";
context.lineWidth = 15;
context.lineCap = "round";
canvas.addEventListener("mousemove", function(e) {
x = e.offsetX;
y = e.offsetY;
context.moveTo(x, y);
context.lineTo(x, y);
context.stroke();
});