照片墙换用api

This commit is contained in:
结发受长生 2019-05-26 23:18:15 +08:00
parent c30aed06c7
commit 91f0315240

View File

@ -2,7 +2,7 @@ import axios from 'axios'
import PhotoSwipe from '../lib/photoswipe/photoswipe' import PhotoSwipe from '../lib/photoswipe/photoswipe'
import PhotoSwipeUI_Default from '../lib/photoswipe/photoswipe-ui-default' import PhotoSwipeUI_Default from '../lib/photoswipe/photoswipe-ui-default'
var groupid = 1, currentIndex = 0, totalIndex = 0, defaultStep = 20, scrollLock = false var totalIndex = 0, defaultStep = 20, scrollLock = false
// 容器DIV // 容器DIV
const photoWallWrapper = document.getElementById('photo-wall') const photoWallWrapper = document.getElementById('photo-wall')
@ -27,11 +27,10 @@ function loadMoreItems(step) {
scrollLock = true //加载过程中锁定滚动加载 scrollLock = true //加载过程中锁定滚动加载
loadTip.style.display = 'block' loadTip.style.display = 'block'
// 滚动到底部时调用 // 滚动到底部时调用
axios.get(`${themeConfig.pictureCdn}/photo-wall/${groupid}/list.json`).then(res => { axios.get(`${themeConfig.root}api/photos`, {params: {start:totalIndex, limit:step}}).then(res => {
var itemContainer = document.createElement('div') var itemContainer = document.createElement('div')
var index = currentIndex for(let index = 0 ; index<res.data.data.length && totalIndex<res.data.total ; index++,totalIndex++ ) {
while(index<currentIndex+step && index<res.data.files.length) { let imgHeight = null, imgFile = res.data.data[index],
let imgHeight = null, imgFile = res.data.files[index],
imgSrc = `${themeConfig.pictureCdn}/${imgFile.name}`, imgSrc = `${themeConfig.pictureCdn}/${imgFile.name}`,
imgThumbnail = imgFile.thumbnail ? `${themeConfig.pictureCdn}/${imgFile.thumbnail}` : imgSrc imgThumbnail = imgFile.thumbnail ? `${themeConfig.pictureCdn}/${imgFile.thumbnail}` : imgSrc
let wrapperWidth = photoWallWrapper.getBoundingClientRect().width let wrapperWidth = photoWallWrapper.getBoundingClientRect().width
@ -66,34 +65,24 @@ function loadMoreItems(step) {
})(totalIndex)) })(totalIndex))
imgItemDiv.appendChild(imgItem) imgItemDiv.appendChild(imgItem)
itemContainer.appendChild(imgItemDiv) itemContainer.appendChild(imgItemDiv)
index++
totalIndex++
}
if(index >= res.data.files.length) { // 已到达当前分组列表的末尾
groupid++
let tempIndex = currentIndex
currentIndex = 0
if(index<currentIndex+step) { // 如果加载的数据数量不足步长
// 则需要再加载下一个分组, 下一个分组需要加载的图片数量是剩余的步长
loadMoreItems(tempIndex + step - index)
}
} else {
currentIndex = index
} }
itemContainer.classList.add('item-container') itemContainer.classList.add('item-container')
// itemContainer.insertAdjacentHTML('beforeend', imgItems) // itemContainer.insertAdjacentHTML('beforeend', imgItems)
photoWallWrapper.appendChild(itemContainer) photoWallWrapper.appendChild(itemContainer)
setTimeout(()=>{ if( totalIndex >= res.data.total ) {
loadTip.style.display = 'none' loadTip.textContent = '没有更多图片啦/(ㄒoㄒ)/~~'
scrollLock = false } else {
}, 2000) setTimeout(()=>{
}).catch(res => { // 未加载到文件列表, 代表已经没有更多图片 loadTip.style.display = 'none'
scrollLock = true scrollLock = false
loadTip.textContent = '没有更多图片啦/(ㄒoㄒ)/~~' }, 2000)
}
}).catch(res => {
scrollLock = false
loadTip.textContent = '图片加载失败, 请稍后重试...'
}) })
} }
//检测是否具备滚动条加载数据块的条件 //检测是否具备滚动条加载数据块的条件
function checkScrollSlide(){ function checkScrollSlide(){
var scrollH = scrollDom.scrollTop || document.body.scrollTop || document.documentElement.scrollTop var scrollH = scrollDom.scrollTop || document.body.scrollTop || document.documentElement.scrollTop