如何在javascript中创建DOM元素的快照?
我正在开发图书编辑器应用程序,它类似于ibooks的作者GoogleSlides。因此,无论数据用户在右侧可编辑区域中输入什么,我们都需要在左侧树状视图中显示页面的小快照。我们可能需要非常频繁地更新快照。可编辑区域可能包含视频、图像、文本区域等 我找到了一些转换html2canvas的解决方案。是否可以在不使用画布的情况下,仅使用css3缩放和javascript创建高质量的快照。如果可能,哪一种解决方案是最佳的性能解决方案(带画布还是不带画布)如何在javascript中创建DOM元素的快照?,javascript,html,css,html5-canvas,scale,Javascript,Html,Css,Html5 Canvas,Scale,我正在开发图书编辑器应用程序,它类似于ibooks的作者GoogleSlides。因此,无论数据用户在右侧可编辑区域中输入什么,我们都需要在左侧树状视图中显示页面的小快照。我们可能需要非常频繁地更新快照。可编辑区域可能包含视频、图像、文本区域等 我找到了一些转换html2canvas的解决方案。是否可以在不使用画布的情况下,仅使用css3缩放和javascript创建高质量的快照。如果可能,哪一种解决方案是最佳的性能解决方案(带画布还是不带画布) 如果有人能链接相关文章或github代码,我将不
如果有人能链接相关文章或github代码,我将不胜感激 仅CSS3和JavaScript hmmmmm…如果只是为了显示而不是导出屏幕截图,您可以在快照div上复制可编辑的屏幕元素,但使用CSS3缩小:
// the snapshot div contains the same elements & layout as
// the editable div, but the snapshot div is 1/5 the size
// because of the scale transformation.
#snapshot{
-moz-transform: scale(0.20);
-ms-transform: scale(0.20); /* IE 9 */
-webkit-transform: scale(0.20); /* Chrome, Safari, Opera */
transform: scale(0.20);
}
嗯,我尝试过这个解决方案,但是文本的质量很差。我的意思是部件模糊了,很公平!还有其他解决办法。您在问题中已经提到了一个画布解决方案:html2canvas。这是…没关系…只要html内容简单,没有花哨的css应用,否则您的html2canvas渲染可能与更复杂的原始渲染不同。另一种解决方案是将html发送到服务器上的无头浏览器,并让服务器将html转换为快照图像。PhantomJS作为一个无头浏览器对我来说工作得很好:祝你的项目好运!