我最近尝试使用画布创建一个简单的画家。我使用 mousedown 来捕获起点。在 mousemove 上,我从起点到当前点画了一条线,并用当前点替换了起点。最后我删除了 mouseup 上的事件处理程序。这个解决方案在 Chrome、Firefox 和 safari 上运行良好,但是当我在 IE9 上测试它时,我遇到了一个烦人的错误。我绘制的线条仅在 mouseup 事件之后出现。关于为什么会发生这种情况以及我应该如何解决它的任何想法?
我添加了一个简单的测试页面来演示这个问题 http://kfirg.com/rage/main.htm 尝试画一条长线,或者一个圆圈或类似的东西。在 chrome 上它可以完美运行,但在 IE9 上它会像疯了一样滞后。
注意:我使用 jQuery 和 jCanvas 来制作这个简单的画家。我也尝试直接使用canvas api自己实现它,我遇到了同样的问题。
更新了 jsFiddle:http: //jsfiddle.net/t5QpN/1/