mirror of
				https://github.com/Wonderfall/hugo-WonderMod.git
				synced 2025-10-30 19:35:26 +01:00 
			
		
		
		
	Refine Dark Mode code
This commit is contained in:
		| @@ -39,40 +39,39 @@ | |||||||
|     <!-- Script --> |     <!-- Script --> | ||||||
|     <script> |     <script> | ||||||
|       function setTheme() { |       function setTheme() { | ||||||
|         const now = Date.now(); |  | ||||||
|         const prev = Number(localStorage.getItem('time')); |         const prev = Number(localStorage.getItem('time')); | ||||||
|  |         const now = Date.now(); | ||||||
|  |         let sunrise; | ||||||
|  |         let sunset; | ||||||
|  |  | ||||||
|         function setBodyClass(sunrise, sunset) { |         function setBodyClass() { | ||||||
|           if (now > sunrise && now < sunset) return; |           if (now > sunrise && now < sunset) return; | ||||||
|           const body = document.querySelector('body'); |           document.body.classList.add('sunset'); | ||||||
|           body.classList.add('dark'); |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (now - prev > 24 * 60 * 60 * 10000) { |         if (now - prev > 24 * 60 * 60 * 10000) { | ||||||
|           let light; |  | ||||||
|           let dark; |  | ||||||
|           fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215') |           fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215') | ||||||
|             .then(res => res.json()) |             .then(res => res.json()) | ||||||
|             .then(data => { |             .then(data => { | ||||||
|               light = data.sunrise.split(':'); |               sunrise = data.sunrise.split(':').map(Number); | ||||||
|               dark = data.sunset.split(':'); |               sunset = data.sunset.split(':').map(Number); | ||||||
|             }) |             }) | ||||||
|             .catch(() => { |             .catch(() => { | ||||||
|               light = [7, 0]; |               sunrise = [7, 0]; | ||||||
|               dark = [19, 0]; |               sunset = [19, 0]; | ||||||
|             }) |             }) | ||||||
|             .finally(() => { |             .finally(() => { | ||||||
|               const sunrise = new Date().setHours(light[0], light[1], 0); |               sunrise = new Date().setHours(sunrise[0], sunrise[1], 0); | ||||||
|               const sunset = new Date().setHours(dark[0], dark[1], 0); |               sunset = new Date().setHours(sunset[0], sunset[1], 0); | ||||||
|               setBodyClass(sunrise, sunset); |               setBodyClass(); | ||||||
|               localStorage.setItem('sunrise', sunrise); |               localStorage.setItem('sunrise', sunrise); | ||||||
|               localStorage.setItem('sunset', sunset); |               localStorage.setItem('sunset', sunset); | ||||||
|             }); |             }); | ||||||
|           localStorage.setItem('time', now); |           localStorage.setItem('time', now); | ||||||
|         } else { |         } else { | ||||||
|           const sunrise = Number(localStorage.getItem('sunrise')); |           sunrise = Number(localStorage.getItem('sunrise')); | ||||||
|           const sunset = Number(localStorage.getItem('sunset')); |           sunset = Number(localStorage.getItem('sunset')); | ||||||
|           setBodyClass(sunrise, sunset); |           setBodyClass(); | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     </script> |     </script> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nanxiaobei
					nanxiaobei