首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#dom-to-image将屏幕下div导出为image

#dom-to-image将屏幕下div导出为image
EN

Stack Overflow用户
提问于 2020-08-22 16:33:55
回答 1查看 636关注 0票数 1

我正在使用dom- to -image库(和downloadjs库)在我的网站上拍摄div的快照。

我正在使用这个方法:

代码语言:javascript
复制
domtoimage.toPng(document.getElementById('myDiv'))
.then(function (dataUrl) {
    download(dataUrl, 'myDiv.png');
});

问题是,我想导出的div不在屏幕上,也就是说,它具有以下css属性:

代码语言:javascript
复制
.myDiv {
    width: 100px;
    height: 100px;
    background: red;
    position: absolute;
    left: -100px;
    top: 0;
}

并且该方法导出一个空图像。

你有什么办法来解决这个问题吗?有没有其他方法可以从屏幕上隐藏div,我可以尝试一下?

如果可能的话,我希望避免使用z-index css属性;)

EN

回答 1

Stack Overflow用户

发布于 2020-08-22 17:11:09

在拍摄快照之前,可以应用使div在视口中可见的样式。

代码语言:javascript
复制
domtoimage.toPng(document.getElementById('myDiv'), {
  style: {
    'left': '0px'
  }
}).then(function(dataUrl) {
  var img = new Image();
  img.src = dataUrl;
  document.getElementById('result').appendChild(img);
  //download(dataUrl, 'myDiv.png');
});
代码语言:javascript
复制
.myDiv {
  width: 100px;
  height: 100px;
  background: red;
  position: absolute;
  left: -100px;
  top: 0;
}

#result {
  position: absolute;
  left: 200px;
  top: 50px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/dom-to-image/2.6.0/dom-to-image.js"></script>
<div id="myDiv" class="myDiv">
  test
</div>

<div id="result">
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63534156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档