This commit is contained in:
杜恒 2021-02-20 09:18:12 +08:00
parent 1776d21763
commit 9aca51ef5a
2 changed files with 102 additions and 99 deletions

View File

@ -1,29 +1,29 @@
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
/* 激活轮播图功能 */ /* 激活轮播图功能 */
{ {
if ($('.joe_index__banner .swiper-container').length !== 0) { if ($('.joe_index__banner .swiper-container').length !== 0) {
let direction = 'horizontal' let direction = 'horizontal';
if (!Joe.IS_MOBILE && $('.joe_index__banner-recommend .item').length === 2) direction = 'vertical' if (!Joe.IS_MOBILE && $('.joe_index__banner-recommend .item').length === 2) direction = 'vertical';
new Swiper('.swiper-container', { new Swiper('.swiper-container', {
keyboard: true, keyboard: true,
direction, direction,
loop: true, loop: true,
autoplay: true, autoplay: true,
mousewheel: true, mousewheel: true,
pagination: { el: '.swiper-pagination' }, pagination: { el: '.swiper-pagination' },
navigation: { navigation: {
nextEl: '.swiper-button-next', nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev' prevEl: '.swiper-button-prev'
} }
}) });
} }
} }
/* 初始化首页列表功能 */ /* 初始化首页列表功能 */
{ {
const getListMode = _ => { const getListMode = _ => {
if (_.mode === 'default') { if (_.mode === 'default') {
return ` return `
<li class="joe_list__item wow default"> <li class="joe_list__item wow default">
<div class="line"></div> <div class="line"></div>
<a href="${_.permalink}" class="thumbnail" title="${_.title}"> <a href="${_.permalink}" class="thumbnail" title="${_.title}">
@ -55,9 +55,9 @@ document.addEventListener('DOMContentLoaded', () => {
</div> </div>
</div> </div>
</li> </li>
` `;
} else if (_.mode === 'single') { } else if (_.mode === 'single') {
return ` return `
<li class="joe_list__item wow single"> <li class="joe_list__item wow single">
<div class="line"></div> <div class="line"></div>
<div class="information"> <div class="information">
@ -91,9 +91,9 @@ document.addEventListener('DOMContentLoaded', () => {
<a class="abstract" href="${_.permalink}" title="文章摘要">${_.abstract}</a> <a class="abstract" href="${_.permalink}" title="文章摘要">${_.abstract}</a>
</div> </div>
</li> </li>
` `;
} else if (_.mode === 'multiple') { } else if (_.mode === 'multiple') {
return ` return `
<li class="joe_list__item wow multiple"> <li class="joe_list__item wow multiple">
<div class="line"></div> <div class="line"></div>
<div class="information"> <div class="information">
@ -104,12 +104,12 @@ document.addEventListener('DOMContentLoaded', () => {
</div> </div>
<a href="${_.permalink}" class="thumbnail" title="${_.title}"> <a href="${_.permalink}" class="thumbnail" title="${_.title}">
${_.image ${_.image
.map((item, index) => { .map((item, index) => {
if (index < 3) { if (index < 3) {
return `<img class="lazyload" src="${_.lazyload}" data-src="${item}" onerror="javascript: this.src='${_.lazyload}';" alt="${_.title}" />` return `<img class="lazyload" src="${_.lazyload}" data-src="${item}" onerror="javascript: this.src='${_.lazyload}';" alt="${_.title}" />`;
} }
}) })
.join('')} .join('')}
</a> </a>
<div class="meta"> <div class="meta">
<ul class="items"> <ul class="items">
@ -126,9 +126,9 @@ document.addEventListener('DOMContentLoaded', () => {
</div> </div>
</div> </div>
</li> </li>
` `;
} else { } else {
return ` return `
<li class="joe_list__item wow none"> <li class="joe_list__item wow none">
<div class="line"></div> <div class="line"></div>
<div class="information"> <div class="information">
@ -152,65 +152,68 @@ document.addEventListener('DOMContentLoaded', () => {
</div> </div>
</div> </div>
</li> </li>
` `;
} }
} };
let queryData = { page: 1, pageSize: 12, type: 'created' } let queryData = { page: 1, pageSize: 12, type: 'created' };
const initDom = () => { const initDom = () => {
$('.joe_index__list .joe_list').html('') $('.joe_index__list .joe_list').html('');
let activeItem = $('.joe_index__title-title .item[data-type="' + queryData.type + '"]') $('.joe_load').show();
let activeLine = $('.joe_index__title-title .line') let activeItem = $('.joe_index__title-title .item[data-type="' + queryData.type + '"]');
activeItem.addClass('active').siblings().removeClass('active') let activeLine = $('.joe_index__title-title .line');
activeLine.css({ left: activeItem.position().left, width: activeItem.width() }) activeItem.addClass('active').siblings().removeClass('active');
} activeLine.css({ left: activeItem.position().left, width: activeItem.width() });
const pushDom = () => { };
return new Promise((reslove, reject) => { const pushDom = () => {
$('.joe_load').attr('loading', true) return new Promise((reslove, reject) => {
$('.joe_load').html('加载中') $('.joe_load').attr('loading', true);
$('.joe_index__list .joe_list__loading').show() $('.joe_load').html('loading...');
$.ajax({ $('.joe_index__list .joe_list__loading').show();
url: Joe.BASE_API, $.ajax({
type: 'POST', url: Joe.BASE_API,
data: { routeType: 'publish_list', page: queryData.page, pageSize: queryData.pageSize, type: queryData.type }, type: 'POST',
success(res) { data: { routeType: 'publish_list', page: queryData.page, pageSize: queryData.pageSize, type: queryData.type },
if (res.data.length === 0) { success(res) {
$('.joe_load').remove() if (res.data.length === 0) {
$('.joe_index__list .joe_list__loading').hide() $('.joe_load').removeAttr('loading');
return $('.joe_load').html('查看更多');
} $('.joe_load').hide();
res.data.forEach(_ => $('.joe_index__list .joe_list').append(getListMode(_))) $('.joe_index__list .joe_list__loading').hide();
$('.joe_load').removeAttr('loading') return Qmsg.warning('没有更多内容了');
$('.joe_load').html('查看更多') }
$('.joe_index__list .joe_list__loading').hide() res.data.forEach(_ => $('.joe_index__list .joe_list').append(getListMode(_)));
reslove(res.data.length > 0 ? res.data.length - 1 : 0) $('.joe_load').removeAttr('loading');
} $('.joe_load').html('查看更多');
}) $('.joe_index__list .joe_list__loading').hide();
}) reslove(res.data.length > 0 ? res.data.length - 1 : 0);
} }
initDom() });
pushDom() });
};
initDom();
pushDom();
$('.joe_index__title-title .item').on('click', async function () { $('.joe_index__title-title .item').on('click', async function () {
if ($(this).attr('data-type') === queryData.type) return if ($(this).attr('data-type') === queryData.type) return;
queryData = { page: 1, pageSize: 12, type: $(this).attr('data-type') } queryData = { page: 1, pageSize: 12, type: $(this).attr('data-type') };
initDom() initDom();
pushDom() pushDom();
}) });
$('.joe_load').on('click', async function () { $('.joe_load').on('click', async function () {
if ($(this).attr('loading')) return if ($(this).attr('loading')) return;
queryData.page++ queryData.page++;
let length = await pushDom() let length = await pushDom();
length = $('.joe_index__list .joe_list .joe_list__item').length - length length = $('.joe_index__list .joe_list .joe_list__item').length - length;
const queryElement = `.joe_index__list .joe_list .joe_list__item:nth-child(${length})` const queryElement = `.joe_index__list .joe_list .joe_list__item:nth-child(${length})`;
const offset = $(queryElement).offset().top - $('.joe_header').height() const offset = $(queryElement).offset().top - $('.joe_header').height();
window.scrollTo({ top: offset - 15, behavior: 'smooth' }) window.scrollTo({ top: offset - 15, behavior: 'smooth' });
}) });
} }
/* 激活列表特效 */ /* 激活列表特效 */
{ {
const wow = $('.joe_index__list').attr('data-wow') const wow = $('.joe_index__list').attr('data-wow');
if (wow !== 'off' && wow) new WOW({ boxClass: 'wow', animateClass: `animated ${wow}`, offset: 0, mobile: true, live: true, scrollContainer: null }).init() if (wow !== 'off' && wow) new WOW({ boxClass: 'wow', animateClass: `animated ${wow}`, offset: 0, mobile: true, live: true, scrollContainer: null }).init();
} }
}) });

View File

@ -3,7 +3,7 @@
/* 获取主题当前版本号 */ /* 获取主题当前版本号 */
function _getVersion() function _getVersion()
{ {
return "5.2.3"; return "5.2.4";
}; };
/* 判断是否是手机 */ /* 判断是否是手机 */