html5画布背景图像在鼠标移动时消失
html5 canvas background image disappear on mousemove
我想在画布上画一张图像,然后允许用户在上面画一些草图。我使用的是sketch.js jquery库。当前状态为:
- 图像已成功加载到画布上
- 但当我把鼠标放在画布上时,图像就消失了
- 当我拖动鼠标时,空画布上出现了一些素描
正确
所以,我认为sketch.js确实清除了画布。但我不知道如何修复它。有什么帮助吗??
canvas.html
<canvas id="tools_sketch" width="300" height="300" style="background: no-repeat center center;border:black 1px solid"></canvas>
这是我的脚本
<script type="text/javascript">
var sigCanvas = document.getElementById('tools_sketch');
var context = sigCanvas.getContext('2d');
var imageObj = new Image();
imageObj.src = 'human-face.jpg';
imageObj.onload = function() {
context.drawImage(this, 0, 0,sigCanvas.width,sigCanvas.width);
};
$(function() {
$('#tools_sketch').sketch({defaultColor: "#FF0000"});
});
</script>
如果不需要保存图像,可以将其作为画布的背景。你不需要每次都画。
style="background: url(your-image-here) no-repeat center center;"
<canvas id="tools_sketch" width="300" height="300" style="background: url(your-image-here) no-repeat center center;"></canvas>
更新
这是sketch.js中的一个错误。你需要从sketch..js中删除这行。来源:
this.el.width = this.canvas.width()
因为画布元素就是这样工作的。每次调整大小后都会清除画布,调整大小后需要重新绘制sketch.js,但库不知道你的图像。
this.el.width = this.canvas.width()
只需在sketch.js
中删除此行
我不知道为什么他们不更新这个CCD_ 4,即使我们发现了错误&解决方案
删除width=line是可行的,但我发现如果你用rgba(0,0255,0.5(绘制,你最终会用rgba。
原因是:当鼠标移动时,每次都会调用重绘。因此画布被重置,之前的每个点都会被绘制出来。当去除上面的线时,同一个像素会被多次绘制,从而去除透明。(透明加起来,等于1(
相关文章:
- js:停止鼠标移动
- Zingchart-平移键和鼠标移动
- 在鼠标上触发鼠标移动'的当前位置
- 当用户将鼠标移到屏幕/图表上时,自动滚动将暂停.如果鼠标移动停止,自动滚动将再次恢复
- 如何在谷歌地图上用鼠标移动标记
- 如何在鼠标移动事件时更改图像的窗口中心和宽度
- 如何模仿鼠标移动和事件
- 鼠标点击不会'不起作用,鼠标移动可以
- 有没有办法提高鼠标移动的分辨率
- 如何在JS中随机化backgroundPosition而不使用鼠标移动来制作万花筒的动画
- 如何使用onmousemove函数在每次鼠标移动时更改背景图像
- 使用jQuery/CSS设置的鼠标光标在鼠标移动之前不会更改
- 在谷歌地图中用鼠标移动标记
- 在HTML5画布中绘制鼠标移动的半透明线条
- 如何使用Protractor/Senium将鼠标移动到任意点
- 防止鼠标移动对elementFromPoint的攻击
- 如果鼠标悬停得很快,Jquery鼠标移动会错过一些单元格
- 检查人员是否通过鼠标移动离开网站
- 使用鼠标移动操作选择选项
- 如何在D3Javascript中将鼠标移动到节点上时显示和隐藏节点