Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中创建DOM元素的快照?_Javascript_Html_Css_Html5 Canvas_Scale - Fatal编程技术网

如何在javascript中创建DOM元素的快照?

如何在javascript中创建DOM元素的快照?,javascript,html,css,html5-canvas,scale,Javascript,Html,Css,Html5 Canvas,Scale,我正在开发图书编辑器应用程序,它类似于ibooks的作者GoogleSlides。因此,无论数据用户在右侧可编辑区域中输入什么,我们都需要在左侧树状视图中显示页面的小快照。我们可能需要非常频繁地更新快照。可编辑区域可能包含视频、图像、文本区域等 我找到了一些转换html2canvas的解决方案。是否可以在不使用画布的情况下,仅使用css3缩放和javascript创建高质量的快照。如果可能,哪一种解决方案是最佳的性能解决方案(带画布还是不带画布) 如果有人能链接相关文章或github代码,我将不

我正在开发图书编辑器应用程序,它类似于ibooks的作者GoogleSlides。因此,无论数据用户在右侧可编辑区域中输入什么,我们都需要在左侧树状视图中显示页面的小快照。我们可能需要非常频繁地更新快照。可编辑区域可能包含视频、图像、文本区域等

我找到了一些转换html2canvas的解决方案。是否可以在不使用画布的情况下,仅使用css3缩放和javascript创建高质量的快照。如果可能,哪一种解决方案是最佳的性能解决方案(带画布还是不带画布)


如果有人能链接相关文章或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作为一个无头浏览器对我来说工作得很好:祝你的项目好运!