html5画布可以为任何dom元素提供屏幕截图吗?
我知道canvas的drawimage方法可以绘制HTMLImageElement、HtmlCanvaElement、HTMLVideoElement 但是如果我想画一个div容器的屏幕截图html5画布可以为任何dom元素提供屏幕截图吗?,html,dom,screenshot,html5-canvas,Html,Dom,Screenshot,Html5 Canvas,我知道canvas的drawimage方法可以绘制HTMLImageElement、HtmlCanvaElement、HTMLVideoElement 但是如果我想画一个div容器的屏幕截图 我知道html2canvas库,但是我不太了解它的文档和it API,我认为它不够灵活。所以我想自己写一个?我怎么能做到呢?这不是很简单。您必须递归地遍历所有子节点,确定它们的计算样式并手动绘制它们的表示 比如说 <div style="border: 1px solid red; backgroun
我知道html2canvas库,但是我不太了解它的文档和it API,我认为它不够灵活。所以我想自己写一个?我怎么能做到呢?这不是很简单。您必须递归地遍历所有子节点,确定它们的计算样式并手动绘制它们的表示 比如说
<div style="border: 1px solid red; background: blue;">foo</div>
foo
需要执行以下步骤:
- 确定
的尺寸和位置(div
)getComputedStyle
- 相应地绘制一个蓝色填充的矩形
- 相应地画一个红色的矩形轮廓
- 确定计算字体样式和填充
- 添加具有该位置和样式的“foo”文本
这基本上就是html2canvas所做的,并且没有本地canvas API来完成它。这不是很简单。您必须递归地遍历所有子节点,确定它们的计算样式并手动绘制它们的表示 比如说
<div style="border: 1px solid red; background: blue;">foo</div>
foo
需要执行以下步骤:
- 确定
的尺寸和位置(div
)getComputedStyle
- 相应地绘制一个蓝色填充的矩形
- 相应地画一个红色的矩形轮廓
- 确定计算字体样式和填充
- 添加具有该位置和样式的“foo”文本