Das Problem, das ich habe, ist, dass wenn die Seite geladen wird, manchmal alle Bilder angezeigt werden, manchmal nur 2 Bilder und manchmal alle. Ich weiß nicht, warum das passiert.Bilder werden nicht geladen
Irgendwelche Ideen?
$('#banners .box img').each(function(index){
var randval = (index+1)*100;
var _this = $(this)
setTimeout(function(){
_this.attr('id' , 'banner' + index);
to_canvas('banner' + index, 300, 223);
}, randval)
});
to_canvas Funktion:
function to_canvas(im,w,h){
var canvas;
var imageBottom;
var im_w = w;
var im_h = h;
var imgData;
var pix;
var pixcount = 0;
var paintrow = 0;
var multiplyColor = [70, 116, 145];
var x_offset = Math.floor(($('#'+im).attr('width') - im_w)/2);
var y_offset = Math.floor(($('#'+im).attr('height') - im_h)/2);
imageBottom = document.getElementById(im);
canvas = document.createElement('canvas');
canvas.width = im_w;
canvas.height = im_h;
imageBottom.parentNode.insertBefore(canvas, imageBottom);
ctx = canvas.getContext('2d');
ctx.drawImage(imageBottom, -x_offset , -y_offset);
imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
pix = imgData.data;
for (var i = 0 ; i < pix.length; i += 4) {
if(pixcount > im_w - (im_h - paintrow)){
pix[i ] = multiply(multiplyColor[0], pix[i ]);
pix[i+1] = multiply(multiplyColor[1], pix[i+1]);
pix[i+2] = multiply(multiplyColor[2], pix[i+2]);
}
if(pixcount < im_w-1){
pixcount++;
}else{
paintrow++;
pixcount = 0;
}
}
ctx.putImageData(imgData, 0, 0);
$('#'+im).remove();
}
function multiply(topValue, bottomValue){
return topValue * bottomValue/255;
}
Ich verwende die Leinwand Funktion ein Dreieck mit Multiplikationseffekt (wie Photoshop) hinzuzufügen.
Leider habe ich keine Antwort für Sie haben, aber haben Sie versucht, Ihre Website-Traffic überwachen, um zu sehen, ob die Bilder oder nicht genannt zu werden? In Firebug zeigt die Registerkarte "NET" den gesamten Datenverkehr beim Laden einer Seite an - Sie können sehen, ob die Bilder aufgerufen werden, geladen werden (oder fehlschlagen) oder erfolgreich aufgerufen und geladen werden Fall es ist ein Fehler irgendwo in der Art, wie Sie es anzeigen. – johnkavanagh
Ich habe gerade festgestellt, dass Bilder nicht angezeigt werden, wenn ich Seite ohne Caching aktualisieren (Strg + F5). Aber das wird erfolgreich heruntergeladen (checked in firebug). Wenn Sie nur die Seite aktualisieren und dem Browser erlauben, nur zwischenzuspeichern (nur F5), sind Bilder sichtbar. Vielleicht hilft es Ihnen –
Sie sind sicher, Sie sollten nicht warten, bis die Bilder geladen sind, d. H. Einige, die das Onload-Ereignis der Bilder verwenden, bevor Sie beginnen, sie für etwas zu verwenden? – adeneo