From bfcefe81ae4c4af388e69bf5ada4d40a191aa3f6 Mon Sep 17 00:00:00 2001 From: Eltrac Koalar Date: Fri, 20 Mar 2020 10:05:14 +0800 Subject: =?UTF-8?q?=F0=9F=94=A8=20Fix:=20=E6=8A=BD=E5=B1=89=E6=A0=8F?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=A4=B1=E6=95=88=E5=92=8C=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=20js=20=E6=8A=A5=E9=94=99=20#35?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/js/miracles.min.js | 261 ++++++++++++++++++++++++---------------------- 1 file changed, 135 insertions(+), 126 deletions(-) diff --git a/assets/js/miracles.min.js b/assets/js/miracles.min.js index 4863262..93b7735 100644 --- a/assets/js/miracles.min.js +++ b/assets/js/miracles.min.js @@ -146,6 +146,7 @@ $('#gotop').hide(); $(window).scroll(function() { if ($(window).scrollTop() > 450) { scaleIn($('#gotop'), '0.7'); + scaleIn($('#gotop'), '0.7'); } else { scaleOut($('#gotop'), '0.7'); } @@ -159,20 +160,18 @@ var last_scroll_position; var header = $(".nav"); window.addEventListener('scroll', function(e) { -last_scroll_position = window.scrollY; - -// 向下滚动 -if (new_scroll_position < last_scroll_position && last_scroll_position > 80) { - header.removeClass("nav-slideDown"); - header.addClass("nav-slideUp"); - -// 向上滚动 -} else if (new_scroll_position > last_scroll_position) { - header.removeClass("nav-slideUp"); - header.addClass("nav-slideDown"); -} + last_scroll_position = window.scrollY; + if (new_scroll_position < last_scroll_position && last_scroll_position > 80) { + //向下滚动 + header.removeClass("nav-slideDown"); + header.addClass("nav-slideUp"); + } else if (new_scroll_position > last_scroll_position) { + //向上滚动 + header.removeClass("nav-slideUp"); + header.addClass("nav-slideDown"); + } -new_scroll_position = last_scroll_position; + new_scroll_position = last_scroll_position; }); /** @@ -262,7 +261,7 @@ function alertSend(content, type) { window.setTimeout(function() { $(".alert").remove(); }, 200); - }, 2000); + }, 2500); } /** @@ -286,132 +285,78 @@ $(document).ready(function() { /** * Event Listeners */ -/* GetElementById */ -function idGetEl(id) { - var el = document.getElementById(id); - return el; -} - /* Find Elements */ -var goTopButton = idGetEl("gotop"); -var fullMask = idGetEl("full-mask"); -var searchCloseButton = idGetEl("search-close-button"); -var searchOpenButton = idGetEl("search-open-button"); -var searchOpenMobile = idGetEl("search-open-mobile"); -var loginCloseButton = idGetEl("login-close"); -var loginOpenButton = idGetEl("login-open"); -var loginOpenMobile = idGetEl("login-open-mobile"); -var toggleMobileMenuClose = idGetEl("toggle-mobile-menu-close"); -var toggleMobileMenu = idGetEl("toggle-mobile-menu-button"); -var drawerButton = idGetEl("drawer-button"); -var navBar = idGetEl("navBar"); -var navBarMobile = idGetEl("navBarMobile"); -var darkToggle = idGetEl("toggle-dark-button"); -var darkToggleMobile = idGetEl("toggle-dark-mobile"); +var goTopButton = $("#gotop"); +var fullMask = $("#full-mask"); +var searchCloseButton = $("#search-close-button"); +var searchOpenButton = $("#search-open-button"); +var searchOpenMobile = $("#search-open-mobile"); +var loginCloseButton = $("#login-close"); +var loginOpenButton = $("#login-open"); +var loginOpenMobile = $("#login-open-mobile"); +var toggleMobileMenuClose = $("#toggle-mobile-menu-close"); +var toggleMobileMenu = $("#toggle-mobile-menu-button"); +var drawerButton = $("#drawer-button"); +var navBar = $("#navBar"); +var navBarMobile = $("#navBarMobile"); +var darkToggle = $("#toggle-dark-button"); +var darkToggleMobile = $("#toggle-dark-mobile"); /* Add Listeners */ //返回顶部按钮 -goTopButton.addEventListener("click", GoTop); +goTopButton.on("click", GoTop); //全屏遮罩(抽屉栏) -fullMask.addEventListener("click", function() { +fullMask.on("click", function() { toggleDrawer(); - $('.options').addClass('ready'); }); +//打开/关闭抽屉栏 +drawerButton.on("click", toggleDrawer); //打开/关闭搜索面板 -searchCloseButton.addEventListener("click", Search); -searchOpenButton.addEventListener("click", Search); -searchOpenMobile.addEventListener("click", Search); +searchCloseButton.on("click", Search); +searchOpenButton.on("click", Search); +if(searchOpenMobile){searchOpenMobile.on("click", function(){ + Search(); + toggleDrawer(); +});} //打开/关闭登录面板 -loginCloseButton.addEventListener("click", Login); -loginOpenButton.addEventListener("click", Login); -loginOpenMobile.addEventListener("click", Login); +loginCloseButton.on("click", Login); +loginOpenButton.on("click", Login); +if(loginOpenMobile){loginOpenMobile.on("click", function() { + Login(); + toggleDrawer(); +});} //开关移动端导航 -toggleMobileMenuClose.addEventListener("click", function() { +if(toggleMobileMenuClose){ + toggleMobileMenuClose.on("click", function() { $(".mobile-menu").toggleClass("ready"); $(".mobile-menu-close").toggleClass("ready"); -}); -toggleMobileMenu.addEventListener("click", function() { + }); +} +if(toggleMobileMenu){ + toggleMobileMenu.on("click", function() { $(".mobile-menu").toggleClass("ready"); $(".mobile-menu-close").toggleClass("ready"); -}); -//切换夜间模式 -darkToggle.addEventListener("click", Dark); -darkToggleMobile.addEventListener("click", Dark); - - -/** - * Load Pjax - */ -if (loadPjax = true) { - $(document).pjax('a[href^="' + siteurl + '"]:not(a[target="_blank"], a[no-pjax], .comment-reply a, .cancel-comment-reply a)', { - container: '#pjax-container', - fragment: '#pjax-container', - timeout: 8000 - }).on('pjax:send', function() { - GoTop(); - //Others - beforePjax(); - }).on('pjax:complete', function() { - //Front-end Login - $('form#login-form').addClass('need-refresh'); - //Close Mobile Menu after pjax finishes - $(".mobile-menu").addClass("ready"); - $(".mobile-menu-close").addClass("ready"); - //Animation - $(".post-list").addClass("fadein").hide().fadeIn(300); - $(".post-body").addClass("fadein").hide().fadeIn(300); - $(".comment").addClass("fadein").hide().fadeIn(300); - $("#pjax-container").css({ - 'height': 'auto' - }); - //NProgress - NProgress.done(); - //LazyLoad - LazyLoad(); - //Code Highlight - highlight(); - //Pangu.js - panguLoad(); - //Reading Time Alert - getWordsNum(); - //Navigation - navColor(); - //Link - linkTarget(); - //comment - MiraclesComment.bindReplyBtn(); //Bind Reply Button - MiraclesComment.core(); //Comment Core - //Others - afterPjax(); - }); + }); } +//切换夜间模式 +darkToggle.on("click", Dark); +if(darkToggleMobile){darkToggleMobile.on("click", Dark);} -/** - * Comply First - */ -(function() { - panguLoad(); - LazyLoad(); - highlight(); - navUpdate(); - getWordsNum(); - navColor(); -})(); /** * NavBar Scroll Change */ -var navBar_height = navBar.clientHeight; - +if(navBar){ + var navBar_height = navBar.clientHeight; function navUpdate() { if(allowNavAero==true) { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop > navBar_height) { - navBar.classList.remove("nav-aero"); - navBarMobile.classList.remove("nav-aero"); + navBar.removeClass("nav-aero"); + navBarMobile.removeClass("nav-aero"); $(".nav-icon-button").css("color", "#000"); } else { - navBar.classList.add("nav-aero"); - navBarMobile.classList.add("nav-aero"); + navBar.addClass("nav-aero"); + navBarMobile.addClass("nav-aero"); if ($(".index-banner").css("background-image")=="url('')") { $(".nav-icon-button").css("color", "#000"); } @@ -421,27 +366,28 @@ var navBar_height = navBar.clientHeight; } } } -$(window).scroll(function() { - navUpdate(); -}) + $(window).scroll(function() { + navUpdate(); + }) +} /** * Navbar font update */ function navColor() { - if (idGetEl("banner-content").className.indexOf("banner-font-black") == -1) { - navBar.classList.add("nav-font-white"); - navBarMobile.classList.add("nav-font-white"); + if ($("#banner-content").hasClass("banner-font-black")) { + if(navBar){navBar.addClass("nav-font-white");} + if(navBarMobile){navBarMobile.addClass("nav-font-white");} } else { - navBar.classList.remove("nav-font-white"); - navBarMobile.classList.remove("nav-font-white"); + if(navBar){navBar.removeClass("nav-font-white");} + if(navBarMobile){navBarMobile.removeClass("nav-font-white");} } } /** * getWordsNum */ function getWordsNum() { - if (idGetEl("post-content")) - str = idGetEl("post-content").innerText; + if ($("#post-content")) + str = $("#post-content").text(); else return false; sLen = 0; str = str.replace(/(\r\n+|\s+| +)/g, "龘"); @@ -450,7 +396,7 @@ function getWordsNum() { str = str.replace(/龘+/g, ""); sLen = str.length; time = Math.ceil(sLen / 450); - idGetEl("readTip").innerHTML = "本文约 " + sLen + "字 阅读大概需要 " + time + " 分钟"; + $("#readTip").html("本文约 " + sLen + "字 阅读大概需要 " + time + " 分钟"); } /** * Build Time Echo @@ -498,4 +444,67 @@ function linkTarget() { } linkTarget(); +/** + * Load Pjax + */ +if (loadPjax = true) { + $(document).pjax('a[href^="' + siteurl + '"]:not(a[target="_blank"], a[no-pjax], .comment-reply a, .cancel-comment-reply a)', { + container: '#pjax-container', + fragment: '#pjax-container', + timeout: 8000 + }).on('pjax:send', function() { + GoTop(); + //Others + beforePjax(); + }).on('pjax:complete', function() { + //Front-end Login + $('form#login-form').addClass('need-refresh'); + //Close Mobile Menu after pjax finishes + $(".mobile-menu").addClass("ready"); + $(".mobile-menu-close").addClass("ready"); + //Animation + $(".post-list").addClass("fadein").hide().fadeIn(300); + $(".post-body").addClass("fadein").hide().fadeIn(300); + $(".comment").addClass("fadein").hide().fadeIn(300); + $("#pjax-container").css({ + 'height': 'auto' + }); + //NProgress + NProgress.done(); + //LazyLoad + LazyLoad(); + //Code Highlight + highlight(); + //Pangu.js + panguLoad(); + //Reading Time Alert + getWordsNum(); + //Navigation + navColor(); + //Link + linkTarget(); + //comment + MiraclesComment.bindReplyBtn(); //Bind Reply Button + MiraclesComment.core(); //Comment Core + //Others + afterPjax(); + }); +} + +/** + * Comply First + */ +(function() { + panguLoad(); + LazyLoad(); + highlight(); + if(navBar){ + navUpdate(); + } + getWordsNum(); + if(navBar){ + navColor(); + } +})(); + console.log("%c 🎉 Theme Miracles %c by Eltrac https://guhub.cn %c ", "color: #fff; margin: 1em 0; padding: 5px 0; background: #29c75f;", "margin: 1em 0; padding: 5px 0; background: #efefef;", "display: block;margin-left:-0.5em;"); \ No newline at end of file -- cgit v1.2.3