/* 壁纸页面需要用到的JS */
console.time('Wallpaper.js执行时长')
document.addEventListener('DOMContentLoaded', () => {
/* 是否正在请求 */
let isLoading = false
/* 查询字段 */
let queryData = { cid: -999, start: -999, count: 30 }
/* 总页数 */
let total = -999
/* 获取壁纸分类 */
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'wallpaper_type' },
success(res) {
if (res.code !== 1) return $('.joe_wallpaper__type-list').html('
壁纸抓取失败!请联系作者!')
if (!res.data.length) return $('.joe_wallpaper__type-list').html(`暂无数据!`)
let htmlStr = ''
res.data.forEach(_ => (htmlStr += `${_.name}`))
$('.joe_wallpaper__type-list').html(htmlStr)
$('.joe_wallpaper__type-list .item').first().click()
}
})
/* 切换类目 */
$('.joe_wallpaper__type-list').on('click', '.item', function () {
const cid = $(this).attr('data-cid')
if (queryData.cid === cid || isLoading) return
window.scrollTo({ top: 0, behavior: 'smooth' })
$(this).addClass('active').siblings().removeClass('active')
queryData.cid = cid
queryData.start = 0
renderDom()
})
/* 渲染DOM */
function renderDom() {
$('.joe_wallpaper__list').html('')
isLoading = true
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: {
routeType: 'wallpaper_list',
cid: queryData.cid,
start: queryData.start,
count: queryData.count
},
success(res) {
if (res.code !== 1) return
let htmlStr = ''
res.data.forEach(_ => {
htmlStr += ``
})
$('.joe_wallpaper__list').html(htmlStr)
new LazyLoad('.wallpaper_lazyload')
total = res.total
initPagination()
},
complete: () => (isLoading = false)
})
}
/* 初始化分页 */
function initPagination() {
let htmlStr = ''
if (queryData.start / queryData.count !== 0) {
htmlStr += `
`
}
htmlStr += ``
if (queryData.start != total - queryData.count) {
htmlStr += `
`
}
if (queryData.start < total - queryData.count) htmlStr += ``
$('.joe_wallpaper__pagination').html(htmlStr)
}
/* 切换分页 */
$('.joe_wallpaper__pagination').on('click', '.joe_wallpaper__pagination-item', function () {
const start = $(this).attr('data-start')
if (!start || isLoading) return
window.scrollTo({ top: 0, behavior: 'smooth' })
queryData.start = Number(start)
renderDom()
})
console.timeEnd('Wallpaper.js执行时长')
})