toggle.js (1333B)
1 document.addEventListener('DOMContentLoaded', function() { 2 3 function toggleCssMode(isDay) { 4 var mode = (isDay ? "Day" : "Night"); 5 localStorage.setItem("css-mode", mode); 6 7 var daysheet = $('link[href="_static/pygments.css"]')[0].sheet; 8 daysheet.disabled = !isDay; 9 10 var nightsheet = $('link[href="_static/css/dark.css"]')[0]; 11 if (!isDay && nightsheet === undefined) { 12 var element = document.createElement("link"); 13 element.setAttribute("rel", "stylesheet"); 14 element.setAttribute("type", "text/css"); 15 element.setAttribute("href", "_static/css/dark.css"); 16 document.getElementsByTagName("head")[0].appendChild(element); 17 return; 18 } 19 if (nightsheet !== undefined) { 20 nightsheet.sheet.disabled = isDay; 21 } 22 } 23 24 var initial = localStorage.getItem("css-mode") != "Night"; 25 var checkbox = document.querySelector('input[name=mode]'); 26 27 toggleCssMode(initial); 28 checkbox.checked = initial; 29 30 checkbox.addEventListener('change', function() { 31 document.documentElement.classList.add('transition'); 32 window.setTimeout(() => { 33 document.documentElement.classList.remove('transition'); 34 }, 1000) 35 toggleCssMode(this.checked); 36 }) 37 38 });