html div看起来不错。
但是当我使用html2canvas时,图像显示错误。
背景
#ref{
width: 360px;
height: 360px;
background: url(/assets/refer/bec.jpg) 0 0 no-repeat;
background-size: cover;
overflow: hidden;
margin-top: 15px;
margin-left: 70px;
float: left;
}
我用它来进行四舍五入
.circular {
background-size: cover;
display: block;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 150px;
height: 150px;
border-radius: 150px;
margin: 70px auto;
-webkit-border-radius: 150px;
-moz-border-radius: 150px;
}
html2canvas
html2canvas(document.getElementById("qqq"), {
onrendered: function(canvas) {
document.body.appendChild(canvas);
},
width: 500,
height: 500
});
我做错了什么? TY
答案 0 :(得分:1)
画布拾取border-radius精细。也许您的内容没有覆盖边缘,因此您无法看到它。尝试确保您的内容填充画布并覆盖角落
答案 1 :(得分:1)
据我所知html2canvas边框半径应该是最大宽度或高度的一半。在你的情况下它应该是最大75.
.circular {
background-size: cover;
display: block;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 150px;
height: 150px;
border-radius: 75px;
margin: 70px auto;
-webkit-border-radius: 150px;
-moz-border-radius: 150px;
}
答案 2 :(得分:1)
在使用Html2Canvas导出pdf时,我遇到了椭圆形状的问题,因此我将边界半径设置为形状(宽度+高度)的一半,因此问题得以解决。.
答案 3 :(得分:0)
这是html2canvas(see here)上报告的错误,修复程序已合并到回购邮件中。
如果您使用的是发布版本0.4.1,请按以下步骤编辑function calculateCurvePoints
:
...
blh = borderRadius[3][0],
blv = borderRadius[3][1];
var halfHeight = Math.floor(height / 2);
tlh = tlh > halfHeight ? halfHeight : tlh;
tlv = tlv > halfHeight ? halfHeight : tlv;
trh = trh > halfHeight ? halfHeight : trh;
trv = trv > halfHeight ? halfHeight : trv;
brh = brh > halfHeight ? halfHeight : brh;
brv = brv > halfHeight ? halfHeight : brv;
blh = blh > halfHeight ? halfHeight : blh;
blv = blv > halfHeight ? halfHeight : blv;
var topWidth = width - trh,
rightHeight = height - brv,
...
感谢Grom-S报告并解决此问题。