【发布时间】:2015-09-11 18:19:37
【问题描述】:
如何将多个动态 div(在运行时创建)转换为图像。在运行时使用 php 数组创建了 50 多个 div。我只想将所有这些 div 分别转换为图像。
这是我尝试过的代码 -
<?php
$names = [" ", "abc", "def", "ghi yfg", "jkl", "mno"];
$i=1;
foreach ($names as $name ) {
?>
<div class='mydivCls' id="mydiv<?php echo $i?>">
<p id="mytext"><?php echo $name ?></p>
</div>
<?php $i++; } ?>
<div id="canvas" style="display:none;">
<p>Canvas:</p>
</div>
<div id="image">
<p>Image:</p>
</div>
我的 Css 代码 --
<style>
@font-face {
font-family:roboto;
src: url("/roboto/Roboto-Medium.ttf")
}
.mydivCls {
background-image: url("1.png");
width: 325px;
height: 207px;
}
.mydivCls p {
font-family: roboto;
padding-top: 100px;
text-align: center;
}
</style>
这是我的脚本--
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://html2canvas.hertzen.com/build/html2canvas.js"></script>
<script>
var i=1;
$(".mydivCls").each (function(){
html2canvas([document.getElementById('mydiv'+i)], {
onrendered: function (canvas) {
document.getElementById('canvas').appendChild(canvas);
var data = canvas.toDataURL('image/png');
var image = new Image();
image.src = data;
document.getElementById('image').appendChild(image);
}
});
i++;
});
</script>
我的控制台出现以下错误 --
TypeError: document.getElementById(...) is null
document.getElementById('canvas'+i).appendChild(canvas);
【问题讨论】:
-
你还需要在 php 中增加 $i
标签: javascript php image html2canvas