我有这段代码运行一个函数来将class =“gray”的彩色图像转换为灰度。JQuery如何在页面加载后运行
$(document).ready(function(){
$('.gray').click(function(){
this.src = grayscale(this.src);
});
});
function grayscale(img){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgObj = new Image();
imgObj.src = img;
canvas.width = imgObj.width;
canvas.height = imgObj.height;
ctx.drawImage(imgObj, 0, 0);
var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
for(var y = 0; y < imgPixels.height; y++){
for(var x = 0; x < imgPixels.width; x++){
var i = (y * 4) * imgPixels.width + x * 4;
var avg = (imgPixels.data[i] +
imgPixels.data[i + 1] +
imgPixels.data[i + 2]
)/3;
imgPixels.data[i] = avg;
imgPixels.data[i + 1] = avg;
imgPixels.data[i + 2] = avg;
}
}
ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
return canvas.toDataURL();
}
该工程确定与点击功能,但我想要的是彩色图像变成灰色立即缩放页面加载之后,这样的功能必须在没有点击运行。这个怎么做?
请说明,$(document).ready(〜)在页面加载时被调用,所以不知道还需要什么? – 2010-11-12 17:37:33
document.ready等于页面加载或onload事件,无论放置在它下面执行...在服务器端代码完成后... – kobe 2010-11-12 17:38:34
在eg。将只能运行点击功能(点击图片),但我需要它在页面加载后立即运行(无需点击图片)。 – jaclerigo 2010-11-12 17:42:45