javascript - Canvas 因鼠标移动事件而闪烁

标签 javascript canvas

我有一个 Canvas ,我在其中单击并拖动图像,但它们不断“捕捉”回起点,这真的很烦人。我不知道为什么我无法解决我在逻辑中犯下的错误。

我的 mousemove 事件有:

function updt(evt) {
        var difx = evt.pageX - clickx;
        var dify = evt.pageY - clicky;
            offsets.cur_offsetx = init_offsetx - difx; 
            offsets.cur_offsety = init_offsety - dify;

        if (offsets.cur_offsetx < 0) {
                offsets.cur_offsetx = 0; 
                clickx = evt.pageX;
        }

        if(offsets.cur_offsety < 0){
                offsets.cur_offsety = 0; 
                clicky = evt.pageY; 
        }
    }

我做了一个jsfiddle来重新创建问题:http://jsfiddle.net/jQkNv/1/

单击鼠标并将其向右拖动,它会不断地将图像捕捉回其原始起点。

我该如何解决这个问题?

最佳答案

<强> Live Demo

将其更改为以下内容对我有用。

    if (offsets.cur_offsetx <= 0) {
            offsets.cur_offsetx = 0; 
    }

    if(offsets.cur_offsety <= 0){
            offsets.cur_offsety = 0; 
    }

编辑我停止更新xy,它似乎有效。

关于javascript - Canvas 因鼠标移动事件而闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050005/

相关文章:

javascript - 在 html Canvas 中绘制具有特定 Angular 线

javascript - Canvas 元素未定义

.net - 如何在 WinUI 3 中使用 DrawingVisual 类?

javascript - 如何在 Canvas 上绘制多个半透明矩形?

javascript - 在 for 循环中设置动画延迟

javascript - 更新段落中的文本后,单击段落到文本区域

javascript - 如何将ajax放入全局js中?

javascript - 将 blob 写入文本文件?

javascript - 将 .bind (mootools) 与 onClick 事件一起使用

javascript - aframe:如何从 Canvas 中获取像素