javascript - Angular 2 中带有 Html2canvas 的“display”:“none”div 的屏幕截图
问题描述
在我的 Angular 2 应用程序中,我需要截取隐藏 div 的屏幕截图。我希望 div 'display':'none'
不会干扰我的 DOM。
Html2canvas 提供了一个onclone
克隆 div 并让更改 css 的选项:
onclone: function(doc){
hiddenDiv = doc.getElementById('myDiv');
hiddenDiv.style.display = 'block';
}
我在我的项目中这样设置它:
#css
.answer-card {
height: 250px;
width: 350px;
background-size: cover;
background-repeat: no-repeat;
justify-content: center;
display: none;
}
<>html
<div id="answer">
<div class="answer-card" [ngStyle]="{'background-image': 'url(' + getBackImg() + ')' }">
<img crossorigin="anonymous" [src]="poster" alt="">
</div>
<h3>Black Widow</h3>
</div>
TS
export class AppComponent {
poster = 'https://image.tmdb.org/t/p/w500/qAZ0pzat24kLdO3o8ejmbLxyOac.jpg';
getBackImg() {
return 'https://image.tmdb.org/t/p/w1280/dq18nCTTLpy9PmtzZI6Y2yAgdw5.jpg';
}
generateAnswer() {
html2canvas(document.getElementById('answer'), {
onclone: function(doc) {
doc.getElementById('answer').style.display = 'flex';
},
allowTaint: true
}).then(canvas => {
document.body.appendChild(canvas);
});
}
}
这是我在 StackBlitz 中的问题的一个工作示例,另一个示例是 Html2canvas 屏幕截图,没有onclone
选项。
解决方案
推荐阅读
- django - 如何使用来自 django 的替代 json 格式将数据发送到动态 jstree
- mysql-8.0 - 在 mysql 8 中使用单个查询删除所有事件
- ios - 如何安排在特定时间过去后以某种频率重复的通知
- movesense - Movesense、imu 数据的时间戳来源以及一般的时序问题
- apache - 是否可以使用 hbase2 构建和使用 apache kylin
- python - 如何使用 python 代码将 UUID 分配给文件 (.mydsl)
- android - 如何从另一个班级的 timePicker 获取时间?
- asp.net - 如何更改电子邮件状态google api c#
- yii2 - Yii2 - 如何在日志消息中设置时间?
- elasticsearch - 弹性搜索没有为 1 个字段搜索提供正确的结果