好,所以我使用Flickity设置了一个照相馆。
var flkty = new Flickity('#photolist', {
"cellAlign": "center",
"wrapAround": true,
"pageDots": false,
"adaptiveHeight": true,
"lazyLoad": 2,
on: {
change: function (index) {
setUrl(index);
}
}
});
setPhoto();
function setPhoto() {
const photoId = document.getElementById("hidPhotoNumber").value;
flkty.select(photoId-1);
}
function setUrl(index) {
const albumName = document.getElementById("hidAlbumName").value;
const photoId = index + 1;
const newUrl = "/" + albumName + "/" + photoId;
window.history.pushState("object or string", "Title", newUrl);
}
基本上,这是初始化Flickity,然后从URL获取照片ID,并将其滚动到相应的幻灯片。
它工作得很好,但是问题是延迟加载。我想让它延迟加载前后的两个图像,如果您是从轮播的开头开始的,那么效果很好。如果您从第12张照片开始,它将先加载前一张照片,然后再加载您实际需要的照片,然后再加载下一张照片。在连接速度较慢的情况下,这是一场噩梦,因为每张照片都需要数百kb,并且在进入幻灯片之前,您会一直空白。
有没有一种方法可以设置它,使其以不同的顺序进行?如:首先设置当前幻灯片,然后开始延迟加载图像(当前一张,之前和之后的两张)?