使用select()延迟加载到特定幻灯片

时间:2020-09-03 16:19:05

标签: javascript flickity

好,所以我使用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,并且在进入幻灯片之前,您会一直空白。

有没有一种方法可以设置它,使其以不同的顺序进行?如:首先设置当前幻灯片,然后开始延迟加载图像(当前一张,之前和之后的两张)?

0 个答案:

没有答案