hexo-theme-ayer/source-src/js/ayer.js
2020-03-24 14:06:11 +08:00

179 lines
4.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function ($) {
// Search
let $searchWrap = $('.search-form-wrap'),
isSearchAnim = false,
searchAnimDuration = 200;
const startSearchAnim = () => {
isSearchAnim = true;
};
const stopSearchAnim = (callback) => {
setTimeout(function () {
isSearchAnim = false;
callback && callback();
}, searchAnimDuration);
};
$('.nav-item-search').click(() => {
if (isSearchAnim) return;
startSearchAnim();
$searchWrap.addClass('on');
stopSearchAnim(function () {
$('.local-search-input').focus();
});
});
$(document).mouseup((e) => {
const _con = $('.local-search');
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
$searchWrap.removeClass('on');
}
});
// Mobile Detect
const isMobile = {
Android: function () {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function () {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function () {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function () {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function () {
return navigator.userAgent.match(/IEMobile/i);
},
any: function () {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
// Share
$('.share-outer').click(() => $('.share-wrap').fadeToggle())
// Lazyload
$("img.lazy").lazyload({
effect: "fadeIn"
});
// JustifiedGallery
$('#gallery').justifiedGallery({
rowHeight: 200,
margins: 5
});
// ScrollDown
$(document).ready(function ($) {
$('.anchor').click(function (e) {
e.preventDefault();
$('main').animate({ scrollTop: $('.cover').height() }, 'smooth');
});
});
// To Top
(() => {
// When to show the scroll link
// higher number = scroll link appears further down the page
const upperLimit = 1000;
// Our scroll link element
const scrollElem = $('#totop');
// Scroll to top speed
const scrollSpeed = 1600;
// Show and hide the scroll to top link based on scroll position
scrollElem.hide();
$('.content').scroll(function () {
const scrollTop = $('.content').scrollTop();
if (scrollTop > upperLimit) {
$(scrollElem).stop().fadeTo(200, .6); // fade back in
} else {
$(scrollElem).stop().fadeTo(200, 0); // fade out
}
});
// Scroll to top animation on click
$(scrollElem).click(function () {
$('.content').animate({ scrollTop: 0 }, scrollSpeed); return false;
});
})();
// Mobile Nav
const $content = $('.content'),
$sidebar = $('.sidebar');
$('.navbar-toggle').on('click', function () {
$content.toggleClass('on');
$sidebar.toggleClass('on');
});
$content.click(() => {
$content.removeClass('on');
$sidebar.removeClass('on');
});
if (window.matchMedia("(min-width: 768px)").matches) {
$content.addClass('on');
$sidebar.addClass('on');
}
// Reward
$('#reward-btn').click(() => {
$('#reward').fadeIn(150)
$('#mask').fadeIn(150)
});
$('#reward .close, #mask').click(() => {
$('#mask').fadeOut(100)
$('#reward').fadeOut(100)
})
// DarkMode
if (sessionStorage.getItem('darkmode') == 1) {
$('body').addClass('darkmode')
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
} else {
$('body').removeClass('darkmode')
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
}
$('#todark').click(() => {
if (sessionStorage.getItem('darkmode') == 1) {
$('body').removeClass('darkmode')
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
sessionStorage.removeItem('darkmode')
} else {
$('body').addClass('darkmode')
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
sessionStorage.setItem('darkmode', 1)
}
})
// showThemeInConsole
const ayerInfo = '主题不错⭐star 支持一下 ->';
const ayerURL = 'https://github.com/Shen-Yu/hexo-theme-ayer';
const ayerNameStr =
'\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ \| | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n';
const ayerInfoStyle =
'background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;';
const ayerURLStyle =
'background-color: #ffbca2; padding: 8px; font-size: 14px;';
const ayerNameStyle = 'background-color: #eaf8ff;';
console.log(
'%c%s%c%s%c%s',
ayerInfoStyle,
ayerInfo,
ayerURLStyle,
ayerURL,
ayerNameStyle,
ayerNameStr
);
})(jQuery);