Il problema che ho è che quando la pagina viene caricata a volte visualizza tutte le immagini, a volte solo 2 immagini e, a volte tutte. Non so perché questo sta accadendo.Le immagini non si caricano sul sito web
Qualche idea?
$('#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)
});
funzione to_canvas:
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;
}
sto usando la funzione di tela per aggiungere un triangolo con effetto moltiplicare (come Photoshop).
Purtroppo non ho una risposta per voi, ma avete provato monitorare il traffico sito web per vedere se le immagini sono chiamati o no? In Firebug la scheda 'NET' ti mostrerà tutto il traffico quando una pagina viene caricata - sarai in grado di vedere se le immagini vengono chiamate, o stanno caricando (o fallendo), o vengono chiamate e caricate con successo, in cui caso è un bug da qualche parte nel modo in cui lo stai visualizzando. – johnkavanagh
Ho appena notato che le immagini non vengono visualizzate quando aggiorno la pagina senza cache (ctrl + f5). Ma che vengono scaricati correttamente (controllato in firebug). Quando si aggiorna la pagina e si consente al browser di memorizzare solo la cache (solo F5), le immagini sono visibili. Forse ti aiuterà –
Sei sicuro di non dover aspettare fino a quando le immagini non vengono caricate, cioè utilizzare in qualche modo l'evento onload delle immagini, prima di iniziare a usarle per qualcosa? – adeneo