mirror of
				https://github.com/yv1ing/MollyBlog.git
				synced 2025-09-16 14:53:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| let theme;
 | |
| 
 | |
| if (localStorage.getItem("theme") === null) {
 | |
|     theme = "dark";
 | |
| } else {
 | |
|     theme = localStorage.getItem("theme");
 | |
| }
 | |
| 
 | |
| replaceCssFile();
 | |
| setTheme();
 | |
| 
 | |
| window.addEventListener('resize', function() {
 | |
|     setFooter()
 | |
| });
 | |
| 
 | |
| setFooter()
 | |
| 
 | |
| function changeTheme() {
 | |
|     if (theme === "dark") {
 | |
|         theme = "light";
 | |
|     } else {
 | |
|         theme = "dark";
 | |
|     }
 | |
| 
 | |
|     localStorage.setItem("theme", theme);
 | |
|     replaceCssFile();
 | |
|     setTheme();
 | |
| }
 | |
| 
 | |
| function setTheme() {
 | |
|     const root = document.documentElement;
 | |
|     root.style.setProperty("--primary-color", `var(--${theme}-primary-color)`);
 | |
|     root.style.setProperty("--secondary-color", `var(--${theme}-secondary-color)`);
 | |
| 
 | |
|     root.style.setProperty("--primary-text-color", `var(--${theme}-primary-text-color)`);
 | |
|     root.style.setProperty("--secondary-text-color", `var(--${theme}-secondary-text-color)`);
 | |
| 
 | |
|     root.style.setProperty("--background-color", `var(--${theme}-background-color)`);
 | |
|     root.style.setProperty("--panel-color", `var(--${theme}-panel-color)`);
 | |
| 
 | |
|     const logo = document.querySelector(".main-logo-img")
 | |
|     if (logo !== null) {
 | |
|         logo.style.setProperty("background-image", `url(https://molly-blog.cdn.yvling.cn/assets/img/logo-${theme}-theme.png)`);
 | |
|     }
 | |
| }
 | |
| 
 | |
| function replaceCssFile() {
 | |
|     let oldHref, newHref;
 | |
|     if (theme === "dark") {
 | |
|         oldHref = "github-light.css";
 | |
|         newHref = "github-dark.css";
 | |
|     } else {
 | |
|         oldHref = "github-dark.css";
 | |
|         newHref = "github-light.css";
 | |
|     }
 | |
| 
 | |
|     const links = document.querySelectorAll('link[rel="stylesheet"]');
 | |
|     for (const link of links) {
 | |
|         if (link.href.includes(oldHref)) {
 | |
|             link.href = "https://molly-blog.cdn.yvling.cn/assets/css/lib/" + newHref;
 | |
|             break;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function checkSpecialHeight() {
 | |
|     let element = document.querySelector('.body-container')
 | |
|     if (!element) {
 | |
|         return false;
 | |
|     }
 | |
|     let elementHeight = element.offsetHeight;
 | |
|     let viewportHeight = window.innerHeight;
 | |
| 
 | |
|     return elementHeight >= viewportHeight * 0.7;
 | |
| }
 | |
| 
 | |
| function setFooter() {
 | |
|     try {
 | |
|         if (checkSpecialHeight()) {
 | |
|             document.querySelector('.footer').style.display = 'none';
 | |
|             document.querySelector('.special-footer').style.display = 'block';
 | |
|         } else {
 | |
|             document.querySelector('.footer').style.display = 'block';
 | |
|             document.querySelector('.special-footer').style.display = 'none';
 | |
|         }
 | |
|     } catch (e) {
 | |
| 
 | |
|     }
 | |
| } |