【发布时间】:2011-09-19 01:26:15
【问题描述】:
我是 jquery 的新手,我有一个关于使用画布显示图像的小项目。一切都会好的,但是当我尝试显示所有图像时遇到问题,我尝试使用 .each(function) 或循环但不起作用
这是我的麻烦,有人可以帮忙吗?谢谢
<textarea id="textid">blah blah blah</textarea>
<canvas id="ca1" width="640" height="480"></canvas>
<script>
$(document.body).find('*').each(function() {
var tmp = $("textarea").children().remove();
var text = $("textarea").text();
text = text.replace(/<li>/g, "").replace(/<\/li>/g, "").replace(/<br \/>/g, "").replace(/\/>/g, "").replace(/<img/g, "").replace(/ /g, "");
$("textarea").text(text);
$("textarea").append(tmp);
});
</script>
Script code :
$(function(e) {
var data = $("#textid").val();
rows = data.split('src="');
partNum = [];
var i;
var len = rows.length;
var can = document.getElementsByTagName('canvas')[0];
var ctx = can.getContext('2d');
$(document).ready(function() {
for (i = 1; i < len; i++) {
partNum[i] = rows[i].substr(0,rows[i].indexOf('"'));
$.getImageData({
url: partNum[i],
success: function(image) {
// Set the canvas width and heigh to the same as the image
$(can).attr('width', image.width);
$(can).attr('height', image.height);
$(can).css({
'background-color': 'none',
'border-color': '#fff'
});
// Draw the image on to the canvas
ctx.drawImage(image, 0, 0, image.width, image.height);
},
error: function(xhr, text_status) {
// Handle your error here
}
});
}
});
});
success: function(image) {
script = document.createElement('canvas'); var can = document.body.appendChild(script);
如果我在两行中更改代码,我可以显示所有图像,但我可以控制它从 1 到 13 加载。任何机构都可以帮助我修复它...谢谢
【问题讨论】:
-
你在使用
$.getImageData()的插件吗? -
是的,我使用 maxnovakovic 的插件。你可以在这个链接中看到:jsfiddle.net/NcKfr/6
-
你能帮帮我吗?我想显示所有图像。当我使用 document.createElement('canvas') 时,一切都会好的,但图像不会显示为循环形式 1 到 13。
标签: javascript jquery image canvas