मेरी समस्या यह है कि जब पृष्ठ लोड होता है तो कभी-कभी यह सभी छवियों को प्रदर्शित करता है, कभी-कभी केवल 2 छवियां और कभी-कभी सभी। मुझे नहीं पता कि यह क्यों हो रहा है।वेबसाइट पर लोड नहीं हो रहा है
कोई विचार?
$('#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 समारोह:
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;
}
मैं एक त्रिकोण (फ़ोटोशॉप) की तरह गुणा प्रभाव के साथ जोड़ने के लिए कैनवास फ़ंक्शन का उपयोग कर रहा हूँ।
दुर्भाग्य से मैं तुम्हारे लिए एक जवाब नहीं है, लेकिन आप यह देखने के लिए छवियों कहा जा रहा है या नहीं आपके वेबसाइट के आवागमन की निगरानी की कोशिश की? फायरबग में 'नेट' टैब आपको पेज लोड के रूप में सभी ट्रैफिक दिखाएगा - आप यह देखने में सक्षम होंगे कि छवियों को बुलाया जा रहा है या लोड हो रहा है (या असफल हो रहा है), या जिन्हें सफलतापूर्वक लोड किया जा रहा है, जिसमें अगर आप इसे प्रदर्शित करने के तरीके में कहीं भी एक बग है। – johnkavanagh
मैंने अभी ध्यान दिया है कि छवियों को प्रदर्शित नहीं किया जाता है, जब मैं कैशिंग के बिना पेज रीफ्रेश करता हूं (ctrl + f5)। लेकिन यह सफलतापूर्वक डाउनलोड हो जाते हैं (फायरबग में चेक किया गया)। जब आप पेज को रीफ्रेश करते हैं और ब्राउज़र को केवल कैश करने की अनुमति देते हैं (केवल F5), छवियां दिखाई देती हैं। हो सकता है कि यह आपको –
की मदद करेगा, आपको यकीन है कि आपको छवियों को लोड होने तक प्रतीक्षा नहीं करनी चाहिए, यानी किसी भी चीज़ के लिए उनका उपयोग शुरू करने से पहले, किसी भी तरह से छवियों के अधिभार ईवेंट का उपयोग करें? – adeneo