/* 壁纸页面需要用到的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 += `
  • 首页
  • ${Math.ceil(queryData.start / queryData.count)}
  • ` } htmlStr += `
  • ${Math.ceil(queryData.start / queryData.count) + 1}
  • ` if (queryData.start != total - queryData.count) { htmlStr += `
  • ${Math.ceil(queryData.start / queryData.count) + 2}
  • ` } 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执行时长') })