在没有库的JS中使用鼠标单击来剪切形状,使用html canvas

我通过在html画布中单击鼠标来给出点来制作形状。现在,我必须单击任意点并将鼠标单击拖动到另一个位置,并且形状应相应调整(剪切)。但是我想通过不使用任何库来做到这一点。我到处都是,大部分都是使用某种库找到的代码。有人可以帮忙吗?仅使用JS可以实现吗?

8080
topten800 回答:在没有库的JS中使用鼠标单击来剪切形状,使用html canvas

现在要做的是重复捕获鼠标的位置。您已经使用了click事件。我建议在这里监听mousedown事件,并在间隔内调用检查鼠标的位置。时间间隔的返回值必须保存在类的字段中,以便以后将其删除。

因此在类中为intervalId添加一个字段:

var points = {};
var points2 = {};
var p = {};
var t = {};
var house = {};
var i = 0;
var j = 0;
var delt = 0;
var mousePos = {
    x: 0,y: 0
};
var intervalId;

在时间间隔内做逻辑:

canvas.addEventListener("mousedown",function(e){
    intervalId = setInterval(function() {
         mousePos = getmouseposition(canvas,e);
         checkPoints(mousePos);
    },500)
},false);

现在,一旦用户再次释放鼠标按钮,就需要清除间隔。因此,我们为mouseup事件注册了另一个事件处理程序:

canvas.addEventListener("mouseup",function(e){
  clearInterval(intervalId);
},false);

该代码未经测试,并且我没有阅读所有功能。这应该只是我如何解决此问题的某种指导。

本文链接:https://www.f2er.com/3027896.html

大家都在问