मेरे पास एक पृष्ठभूमि है जो हर 12 सेकंड में बदलती है। क्रोम, फ़ायरफ़ॉक्स और ओपेरा में पृष्ठभूमि परिवर्तन ठीक काम करता है, लेकिन सफारी में ब्राउज़र हमेशा छवि को फिर से लोड करता है और यह पहले चक्र पर प्रत्येक छवि परिवर्तन पर झटके से देखा जाता है। इस समस्या को हल करने के तरीके पर कोई विचार।पृष्ठभूमि छवि परिवर्तन के लिए सफारी पर छवियों को प्रीलोड करना
var img2 = new Image();
var img3 = new Image();
img2.src="/img/bg2.png";
img3.src="/img/bg3.png";
Meteor.setInterval(function(){
let elem = $(".header-2");
if(elem.hasClass("bg1")){
elem.removeClass("bg1");
elem.addClass("bg2");
let src = 'url('+img2.src.replace(location.origin,'')+')';
elem.css("background-image", src);
}
else if(elem.hasClass("bg2")){
elem.removeClass("bg2");
elem.addClass("bg3");
let src = 'url('+img3.src.replace(location.origin,'')+')';
elem.css("background-image", src);
}
else{
elem.removeClass("bg3");
elem.addClass("bg1");
}
}, 12*1000)
सीएसएस वर्गों:
.header-2.bg1 {
background-image: url('/img/bg1.png');
}
.header-2.bg2 {
}
.header-2.bg3 {
}
टाइमर टिकते समय छवि के 'src' को बदलने के बजाय, क्या आपके पास कई तत्व हो सकते हैं, प्रत्येक व्यक्ति अपनी छवि लोड कर लेता है, और' जेड-इंडेक्स 'को उस तत्व के सामने लाने के लिए बदल सकता है जिसे आप चाहते हैं? यदि छवियों में पारदर्शिता है, तो आप छिपी तत्वों को अपनी अस्पष्टता शून्य पर सेट करके अदृश्य बना सकते हैं। – ConnorsFan