使用html2canvas截取带输入框的截图,发现截图的input框里面的内容发生了向上偏移
未发现你说的问题
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></script>
<script src="https://cdn.bootcss.com/jspdf/1.3.4/jspdf.debug.js"></script>
<style type="text/css">
</style>
</head>
<body>
<div id="box">
<input type="text" style="height: 100px; line-height: 100px;" placeholder="请输入内容">
</div>
<button type="button" id="exportToPdf" onclick="btn()">html2canvas</button>
<div id="target"></div>
<script type="text/javascript">
var target = document.getElementById('target')
function btn() {
html2canvas(document.getElementById("box"), {
onrendered: function (canvas) {
console.log(canvas);
target.appendChild(canvas)
}
});
}
</script>
</body>
</html>
可以去跟他们提个issue,然后等待他们解决,html2canvas是计算dom及其子节点样式,然后绘制到canvas上,最后导出canvas为图片的,计算样式这一点很复杂的也很容易出错的,需要考虑的方便比较多,比如不同浏览器不同版本,这里就是兼容性没考虑到input的placeholder的样式。
如果不等他们解决的话,你可以自己拿到他们的源码,自己修改,不会修改的话就在导出的时候用其他元素模拟这个input和他的placeholder,项目开发中这种性价比不高(功能性远小于开发难度)的功能点很多,要学会取舍,学会说服客户,一些小瑕疵不影响项目完成度
怎么使得截图与html的内容一致
我遇到了和你一样的问题