Canvg-canvas在mousemove上进行更改
Canvg - canvas changes on mousemove
本文关键字:mousemove Canvg-canvas 更新时间:2024-02-18
我使用canvg将一些SVG渲染到图像中。目前SVG到画布的部分工作得很好。然而,我无法确定当指针进入生成的画布时,生成的画布为什么会发生变化。我真的必须复制生成的画布吗?还是我缺少了什么?
svgElement.each(function () {
var canvas = document.createElement("canvas");
//convert SVG into a XML string
var xml = (new XMLSerializer()).serializeToString(this);
// Removing the name space as IE throws an error
xml = xml.replace(/xmlns='"http:'/'/www'.w3'.org'/2000'/svg'"/, '');
// Rounded svg dimensions
var width = Math.floor(svgElement.width());
var height = Math.floor(svgElement.height());
// Draw the SVG onto a canvas
canvas.width = width;
canvas.height = height;
$(canvas).css('border', '2px solid red');
canvg(canvas, xml, {
ignoreDimensions: true,
scaleWidth: width,
scaleHeight: height
});
$('body').append(canvas); // When pointer enters the canvas it changes
// I can copy the canvas and that copy won't change on pointer enter.
$(this).hide();
}
jsfiddle
在MacOS X El Capitan下的Firefox DE 47和Chrome 49上进行了验证(我的朋友也验证了这在Firefox和Chrome的Windows下都会发生)。
您必须使用ignoreMouse
选项:
更新的fiddle:http://jsfiddle.net/35t6fkvj/7/
canvg(canvas, xml, {
ignoreDimensions: true,
scaleWidth: width,
scaleHeight: height,
ignoreMouse: true
});
不确定为什么它认为应该通过
相关文章:
- 主体上的addEventListener('mousemove',..)-有多糟糕
- 如何在IE8及以前版本中处理mousemove
- AngularJS-如何在mousemove上存储鼠标坐标
- 我应该/如何清除mousemove JQuery事件侦听器
- 如何使用Javascript或jQuery代码调用mousemove
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- 如何在拖动绑定到“mousedowd,mousemove,mouseup”的锚点时防止重定向
- jQuery UI draggable:绑定到mousemove事件中的对象
- 如何正确停止mousemove事件
- Canvg-canvas在mousemove上进行更改
- SVG到Canvas,canvg不尊重css
- mousemove抓取嵌套元素的XY偏移
- 当使用canvg将Highchart SVG转换为PNG时,所有文本都会出现两次——如何解决
- fadeIn mousemove()上的导航-某个时间后fadeOut
- 如何在angularjs单元测试中触发mousemove事件
- 用标准javascript而不是jquery中的mousedown、mousemove和mouseup触摸事件句柄
- Jquery中的mousemove和图像有问题
- jQuery mousemove with CSS transitions
- TouchMove和MouseMove使用相同的功能,如何清理我的代码
- mousemove handler 未使用 JQuery .mousemove() 或 .trigger 调用