antvis / G

💥 A flexible rendering engine for visualization.
https://g.antv.antgroup.com/
1.08k stars 202 forks source link

new Canvas参数container支持HTMLCanvasElement #794

Closed zuiidea closed 2 years ago

zuiidea commented 3 years ago

container 参数可以直接传入 HTMLCanvasElement 类型,无需通过document.createElement('canvas') 去生成一个canvas元素。

YYL1999 commented 3 years ago

现在 g会自动创建canvas元素 container只是提供一个挂载点 g自动创建的canvas元素会挂载到你传入的这个元素里面的 你的意思是直接使用你自己创建的canvas元素嘛

zuiidea commented 3 years ago

是的,这样可以避免操作dom,在webwoker内无法操作dom

YYL1999 commented 3 years ago

是的,这样可以避免操作dom,在webwoker内无法操作dom

改天我尽快提个PR 让大佬们看看通过一下

xiaoiver commented 2 years ago

之前确实存在这个问题,新版我们考虑了在 Worker 这样的非 DOM 环境内运行,我尽快补充一个示例

xiaoiver commented 2 years ago

新版增加了 canvas 参数支持传入以创建的 <canvas> 或者 OffscreenCanvas:

// 用户自行创建 <canvas>
const $canvas = document.createElement('canvas');
// 设置画布大小
const dpr = window.devicePixelRatio;
$canvas.height = dpr * 600;
$canvas.width = dpr * 500;
$canvas.style.height = '600px';
$canvas.style.width = '500px';
// 用户自行将 <canvas> 加入文档
document.getElementById('container').appendChild($canvas);

// 使用创建好的 <canvas> 创建画布
const canvas = new Canvas({
    canvas: $canvas,
    renderer: canvasRenderer,
});

文档:https://antv-g-next.gitee.io/zh/docs/api/canvas#canvas