我的背景每12秒钟就会更改一次。在Chrome、Firefox和Opera中,背景更改运行良好,但在Safari中,浏览器总是重新加载图像,并在第一个周期的每个图像更改上通过闪烁来体现出来。有什么想法可以解决这个问题吗。
我是这样处理背景更改的:
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)
CSS类:
.header-2.bg1 {
background-image: url('/img/bg1.png');
}
.header-2.bg2 {
}
.header-2.bg3 {
}
src
,您是否可以有几个元素,每个元素都加载了自己的图像,并更改z-index
以将您想要的元素置于前面?如果图片具有透明度,则可以通过将其不可见性设置为零来使隐藏元素变为不可见。 - ConnorsFan