parent
738ae04f57
commit
10ee845eb7
@ -1,31 +0,0 @@
|
|||||||
#loading {
|
|
||||||
position: fixed;
|
|
||||||
background-color: #212121;
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 1000000
|
|
||||||
}
|
|
||||||
|
|
||||||
#Calc-loading_bg{
|
|
||||||
background-color: rgba(0,0,0,0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
.Calc-loader {
|
|
||||||
line-height: 50px;
|
|
||||||
text-align: center;
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
-webkit-transform: translate(-50%, -50%);
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
font-family: helvetica, arial, sans-serif;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 900;
|
|
||||||
color: #0277BD;
|
|
||||||
letter-spacing: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 980px){.Clac-loader{width:80%}}
|
|
||||||
@media screen and (min-width: 980px){.Clac-loader{width:25rem}}
|
|
@ -1,12 +0,0 @@
|
|||||||
#translate>.translateSelectLanguage {
|
|
||||||
cursor:pointer;
|
|
||||||
position:absolute;
|
|
||||||
padding:0.3rem;
|
|
||||||
padding-left:0.5rem;
|
|
||||||
padding-right:0.5rem;
|
|
||||||
color: #DDD;
|
|
||||||
background-color: #795548;
|
|
||||||
border:2px solid #8D6E63;
|
|
||||||
}
|
|
||||||
@media screen and (max-width: 980px){#translate>.translateSelectLanguage {left:1rem;top:1rem;font-size:.8rem;width:6rem}}
|
|
||||||
@media screen and (min-width: 980px){#translate>.translateSelectLanguage {left:2rem;top:2rem;font-size:1rem}}
|
|
@ -1,83 +0,0 @@
|
|||||||
// 获取用户使用的语种。
|
|
||||||
var lang = translate.language.getCurrent();
|
|
||||||
var giscus_lang = "zh-CN";
|
|
||||||
switch (lang) {
|
|
||||||
case "chinese_traditional":
|
|
||||||
giscus_lang = "zh-TW";
|
|
||||||
break;
|
|
||||||
case "english":
|
|
||||||
giscus_lang = "en";
|
|
||||||
break;
|
|
||||||
case "spanish":
|
|
||||||
giscus_lang = "es";
|
|
||||||
break;
|
|
||||||
case "japanese":
|
|
||||||
giscus_lang = "ja";
|
|
||||||
break;
|
|
||||||
case "korean":
|
|
||||||
giscus_lang = "ko";
|
|
||||||
break;
|
|
||||||
case "french":
|
|
||||||
giscus_lang = "fr";
|
|
||||||
break;
|
|
||||||
case "arabic":
|
|
||||||
giscus_lang = "ar";
|
|
||||||
break;
|
|
||||||
case "catalan":
|
|
||||||
giscus_lang = "ca";
|
|
||||||
break;
|
|
||||||
case "danish":
|
|
||||||
giscus_lang = "da";
|
|
||||||
break;
|
|
||||||
case "deutsch":
|
|
||||||
giscus_lang = "de";
|
|
||||||
break;
|
|
||||||
case "persian":
|
|
||||||
giscus_lang = "fa";
|
|
||||||
break;
|
|
||||||
case "greek":
|
|
||||||
giscus_lang = "gr";
|
|
||||||
break;
|
|
||||||
case "serbian":
|
|
||||||
giscus_lang = "hbs";
|
|
||||||
break;
|
|
||||||
case "hebrew":
|
|
||||||
giscus_lang = "he";
|
|
||||||
break;
|
|
||||||
case "hungarian":
|
|
||||||
giscus_lang = "hu";
|
|
||||||
break;
|
|
||||||
case "italian":
|
|
||||||
giscus_lang = "it";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
giscus_lang = "zh-CN";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var giscus = function () {
|
|
||||||
const script = document.createElement("script");
|
|
||||||
script.type = "text/javascript";
|
|
||||||
script.src = "https://giscus.app/client.js";
|
|
||||||
|
|
||||||
|
|
||||||
script.setAttribute("data-repo", "PJ-568/568_Calc");
|
|
||||||
script.setAttribute("data-repo-id", "R_kgDOKgTh_A");
|
|
||||||
script.setAttribute("data-category", "Announcements");
|
|
||||||
script.setAttribute("data-category-id", "DIC_kwDOKgTh_M4CaKUO");
|
|
||||||
|
|
||||||
script.setAttribute("data-mapping", "title");
|
|
||||||
script.setAttribute("data-strict", "1");
|
|
||||||
script.setAttribute("data-reactions-enabled", "1");
|
|
||||||
script.setAttribute("data-emit-metadata", "0");
|
|
||||||
script.setAttribute("data-input-position", "top");
|
|
||||||
script.setAttribute("data-theme", "transparent_dark");
|
|
||||||
script.setAttribute("data-lang", giscus_lang);
|
|
||||||
script.setAttribute("data-loading", "lazy");
|
|
||||||
|
|
||||||
script.crossOrigin = "anonymous";
|
|
||||||
script.async = true;
|
|
||||||
document.getElementById("giscus-container").appendChild(script);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.addEventListener('load', giscus);
|
|
@ -1,26 +0,0 @@
|
|||||||
function includeHTML() {
|
|
||||||
var elements = document.getElementsByTagName("include");
|
|
||||||
for (var i = 0; i < elements.length; i++) {
|
|
||||||
var element = elements[i];
|
|
||||||
var file = element.getAttribute("src");
|
|
||||||
if (file) {
|
|
||||||
var xhttp = new XMLHttpRequest();
|
|
||||||
xhttp.onreadystatechange = function() {
|
|
||||||
if (this.readyState === 4 && this.status === 200) {
|
|
||||||
element.innerHTML = this.responseText;
|
|
||||||
// 执行加载的JavaScript代码
|
|
||||||
var scripts = element.getElementsByTagName("script");
|
|
||||||
for (var j = 0; j < scripts.length; j++) {
|
|
||||||
var script = document.createElement("script");
|
|
||||||
script.innerHTML = scripts[j].innerHTML;
|
|
||||||
document.body.appendChild(script);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
xhttp.open("GET", file, true);
|
|
||||||
xhttp.send();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", includeHTML);
|
|
@ -1,43 +0,0 @@
|
|||||||
// const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
|
|
||||||
|
|
||||||
document.onreadystatechange=function () {
|
|
||||||
if (document.readyState=="complete"){
|
|
||||||
loadingFade();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function startLoading() {
|
|
||||||
const position = document.getElementById('loading');
|
|
||||||
var loadingBackground=document.getElementById('Calc-loading_bg');
|
|
||||||
position.style.display = 'block';
|
|
||||||
loadingBackground.style.opacity=1;
|
|
||||||
setTimeout(() => loadingFade(), 30000)
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadingFade() {
|
|
||||||
var opacity=1;
|
|
||||||
const position = document.getElementById('loading');
|
|
||||||
var loadingBackground=document.getElementById('Calc-loading_bg');
|
|
||||||
var time=setInterval(function () {
|
|
||||||
if (opacity<=0){
|
|
||||||
clearInterval(time);
|
|
||||||
position.style.display = 'none';
|
|
||||||
try{
|
|
||||||
translate.listener.start();
|
|
||||||
translate.language.setLocal('chinese_simplified');
|
|
||||||
translate.setAutoDiscriminateLocalLanguage();
|
|
||||||
translate.language.setUrlParamControl();
|
|
||||||
translate.ignore.class.push('notTranslate');
|
|
||||||
}
|
|
||||||
catch(e){console.log(e);}
|
|
||||||
translate.setUseVersion2();
|
|
||||||
translate.nomenclature.append('chinese_simplified','english',`
|
|
||||||
568_Calc=568_Calc
|
|
||||||
`);
|
|
||||||
translate.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
loadingBackground.style.opacity=opacity;
|
|
||||||
opacity-=0.4;
|
|
||||||
},100);
|
|
||||||
}
|
|
@ -0,0 +1,215 @@
|
|||||||
|
(function () {
|
||||||
|
// giscus 评论系统
|
||||||
|
//// 获取用户使用的语种并转换为 giscus 可识别的标记
|
||||||
|
const getCurrentLanguage = function () {
|
||||||
|
var lang = translate.language.getCurrent();
|
||||||
|
var giscus_lang = "zh-CN";
|
||||||
|
switch (lang) {
|
||||||
|
case "chinese_traditional":
|
||||||
|
giscus_lang = "zh-TW";
|
||||||
|
break;
|
||||||
|
case "english":
|
||||||
|
giscus_lang = "en";
|
||||||
|
break;
|
||||||
|
case "spanish":
|
||||||
|
giscus_lang = "es";
|
||||||
|
break;
|
||||||
|
case "japanese":
|
||||||
|
giscus_lang = "ja";
|
||||||
|
break;
|
||||||
|
case "korean":
|
||||||
|
giscus_lang = "ko";
|
||||||
|
break;
|
||||||
|
case "french":
|
||||||
|
giscus_lang = "fr";
|
||||||
|
break;
|
||||||
|
case "arabic":
|
||||||
|
giscus_lang = "ar";
|
||||||
|
break;
|
||||||
|
case "catalan":
|
||||||
|
giscus_lang = "ca";
|
||||||
|
break;
|
||||||
|
case "danish":
|
||||||
|
giscus_lang = "da";
|
||||||
|
break;
|
||||||
|
case "deutsch":
|
||||||
|
giscus_lang = "de";
|
||||||
|
break;
|
||||||
|
case "persian":
|
||||||
|
giscus_lang = "fa";
|
||||||
|
break;
|
||||||
|
case "greek":
|
||||||
|
giscus_lang = "gr";
|
||||||
|
break;
|
||||||
|
case "serbian":
|
||||||
|
giscus_lang = "hbs";
|
||||||
|
break;
|
||||||
|
case "hebrew":
|
||||||
|
giscus_lang = "he";
|
||||||
|
break;
|
||||||
|
case "hungarian":
|
||||||
|
giscus_lang = "hu";
|
||||||
|
break;
|
||||||
|
case "italian":
|
||||||
|
giscus_lang = "it";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
giscus_lang = "zh-CN";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return giscus_lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
var SetupGiscus = function (giscus_lang) {
|
||||||
|
if (document.getElementById("giscus-container") != null) {
|
||||||
|
const script = document.createElement("script");
|
||||||
|
script.type = "text/javascript";
|
||||||
|
script.src = "https://giscus.app/client.js";
|
||||||
|
|
||||||
|
|
||||||
|
script.setAttribute("data-repo", "Hamud-Lang/Hamud_Book");
|
||||||
|
script.setAttribute("data-repo-id", "R_kgDOKAX-uw");
|
||||||
|
script.setAttribute("data-category", "Announcements");
|
||||||
|
script.setAttribute("data-category-id", "DIC_kwDOKAX-u84CYRSk");
|
||||||
|
|
||||||
|
script.setAttribute("data-mapping", "title");
|
||||||
|
script.setAttribute("data-strict", "1");
|
||||||
|
script.setAttribute("data-reactions-enabled", "1");
|
||||||
|
script.setAttribute("data-emit-metadata", "0");
|
||||||
|
script.setAttribute("data-input-position", "top");
|
||||||
|
script.setAttribute("data-theme", 'transparent_dark');
|
||||||
|
script.setAttribute("data-lang", giscus_lang);
|
||||||
|
|
||||||
|
script.crossOrigin = "anonymous";
|
||||||
|
script.async = true;
|
||||||
|
|
||||||
|
document.getElementById("giscus-container").appendChild(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function includeHTML() {
|
||||||
|
var elements = document.getElementsByTagName("include");
|
||||||
|
for (var i = 0; i < elements.length; i++) {
|
||||||
|
var element = elements[i];
|
||||||
|
var file = element.getAttribute("src");
|
||||||
|
if (file) {
|
||||||
|
var xhttp = new XMLHttpRequest();
|
||||||
|
xhttp.onreadystatechange = function () {
|
||||||
|
if (this.readyState === 4 && this.status === 200) {
|
||||||
|
element.innerHTML = this.responseText;
|
||||||
|
// 执行加载的JavaScript代码
|
||||||
|
var scripts = element.getElementsByTagName("script");
|
||||||
|
for (var j = 0; j < scripts.length; j++) {
|
||||||
|
var script = document.createElement("script");
|
||||||
|
script.innerHTML = scripts[j].innerHTML;
|
||||||
|
document.body.appendChild(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhttp.open("GET", file, true);
|
||||||
|
xhttp.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate-js 翻译系统
|
||||||
|
function initTranslate() {
|
||||||
|
try {
|
||||||
|
translate.service.use('client.edge');
|
||||||
|
translate.listener.start();
|
||||||
|
translate.language.setLocal('chinese_simplified');
|
||||||
|
translate.setAutoDiscriminateLocalLanguage();
|
||||||
|
translate.language.setUrlParamControl();
|
||||||
|
translate.ignore.class.push('notTranslate');
|
||||||
|
translate.execute();
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log('翻译系统出错:' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var loadingBar = document.querySelector(".loading-bar");
|
||||||
|
var progress = document.querySelector(".loading-bar .progress");
|
||||||
|
var timer = null;
|
||||||
|
|
||||||
|
function initAni() {
|
||||||
|
loadingBar = document.querySelector(".loading-bar");
|
||||||
|
progress = document.querySelector(".loading-bar .progress");
|
||||||
|
}
|
||||||
|
|
||||||
|
function endLoad() {
|
||||||
|
clearInterval(timer);
|
||||||
|
progress.style.width = "100%";
|
||||||
|
loadingBar.classList.remove("loading");
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
progress.style.width = 0;
|
||||||
|
}, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PJAX 集成
|
||||||
|
let pjax;
|
||||||
|
//// 初始化 PJAX
|
||||||
|
function initPjax() {
|
||||||
|
try {
|
||||||
|
const Pjax = window.Pjax || function () { };
|
||||||
|
pjax = new Pjax({
|
||||||
|
selectors: [
|
||||||
|
'head title',
|
||||||
|
'.container',
|
||||||
|
'[data-pjax]',
|
||||||
|
'.pjax-reload'
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log('PJAX 出错:' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 初始化
|
||||||
|
function initialize() {
|
||||||
|
initPjax(); //// 初始化 PJAX
|
||||||
|
includeHTML(); //// 引入
|
||||||
|
initTranslate(); //// 初始化页面翻译
|
||||||
|
initAni(); //// 初始化加载动画
|
||||||
|
SetupGiscus(getCurrentLanguage()); //// 初始化评论系统
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 触发器
|
||||||
|
//// 网页加载完毕后触发
|
||||||
|
window.addEventListener('DOMContentLoaded', () => initialize());
|
||||||
|
//// 翻译执行完成后触发
|
||||||
|
translate.listener.renderTaskFinish = function () {
|
||||||
|
SetupGiscus(getCurrentLanguage());
|
||||||
|
}
|
||||||
|
//// Pjax 开始时执行的函数
|
||||||
|
document.addEventListener("pjax:send", function () {
|
||||||
|
var loadingBarWidth = 20;
|
||||||
|
var MAX_LOADING_WIDTH = 95;
|
||||||
|
|
||||||
|
loadingBar.classList.add("loading");
|
||||||
|
progress.style.width = loadingBarWidth + "%";
|
||||||
|
|
||||||
|
clearInterval(timer);
|
||||||
|
timer = setInterval(function () {
|
||||||
|
loadingBarWidth += 3;
|
||||||
|
|
||||||
|
if (loadingBarWidth > MAX_LOADING_WIDTH) {
|
||||||
|
loadingBarWidth = MAX_LOADING_WIDTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress.style.width = loadingBarWidth + "%";
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
//// 监听 Pjax 完成后,重新加载的函数
|
||||||
|
document.addEventListener("pjax:complete", function () {
|
||||||
|
SetupGiscus(getCurrentLanguage());
|
||||||
|
includeHTML();
|
||||||
|
endLoad();
|
||||||
|
})
|
||||||
|
})();
|
Loading…
Reference in new issue