我在javascript/jQuery中循环浏览背景图像,就像这样...
var duration = 2500;
var delay = 500;
var i = 0;
setInterval(function() {
if (i == 0) {
$(".myimage").css("background-image", "url('https://placeimg.com/1640/1480/any')");
}
if (i == 1) {
$(".myimage").css("background-image", "url('https://placeimg.com/1640/1481/any')");
}
if (i == 2) {
$(".myimage").css("background-image", "url('https://placeimg.com/1640/1482/any')");
}
if (i == 3) {
$(".myimage").css("background-image", "url('https://placeimg.com/1640/1483/any')");
}
i++;
}, duration + delay)
.myimage {
height: 500px;
width: 500px;
transition: background-image 1s linear;
background-image: url('https://placeimg.com/1648/1488/any');
background-size: cover;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myimage">
</div>
问题是,我偶尔会出现没有图像的 Flink ,我想这是因为图像没有及时加载。有没有办法预加载它们?
4条答案
按热度按时间wqlqzqxt1#
您可以使用CSS预加载它们,如:
**注意:**您可以在JS代码中使用图像数组,并根据索引
i
更改它们。x一个一个一个一个x一个一个二个一个x一个一个三个一个
yzuktlbb2#
您可以按以下方式预加载图像
图像预加载后,您可以使用您的代码,而不是
您使用
这通常会导致您的图像已经加载并正确显示。
jgzswidk3#
第一次,浏览器需要下载所有的图像,一旦下载,它将从缓存加载。
因此,每次浏览器下载文件时,都会出现无图像的 Flink 。您有两种选择
1.您正在遵循的方法(这是确定的)
1.使用CSS技巧加载所有一次使用以下代码
.myimage { height: 500px; width: 500px; transition: background-image 1s linear; background-image: url('https://placeimg.com/1648/1480/any'); background-image: url('https://placeimg.com/1648/1481/any'); background-image: url('https://placeimg.com/1648/1482/any'); background-image: url('https://placeimg.com/1648/1483/any'); background-size: cover; }
2uluyalo4#
一旦浏览器加载它,它不会被重新加载所有的时间。第二次呈现相同的图像不会有这样的问题
使用
i= i==3?0:++i
使图像循环。而不是仅使用i++Fiddle