0

我需要你的帮助!我想自动编写文本并打开/关闭 DarkMode。我从其他开发人员那里复制了文字。但我一个人创建了 DarkMode。编写文本正在工作。黑暗模式也是。但是当我在一个页面上同时使用它们时,其中一个不起作用。我检查了所有相同的变量,我什至向变量添加了一些空值来重置它。或者我尝试使用不同的值。但什么都没有。请问这个怎么办?

这是 JS:

//Check, if DarkMode is ON, or not
function getCookie(cname) {
 var name = cname + "=";
 var decodedCookie = decodeURIComponent(document.cookie);
 var ca = decodedCookie.split(';');
 for(var i = 0; i <ca.length; i++) {
   var c = ca[i];
   while (c.charAt(0) == ' ') {
     c = c.substring(1);
   }
   if (c.indexOf(name) == 0) {
     return c.substring(name.length, c.length);
   }
 }
 return "";
}

function checkCookie() {
 var dmTheme = getCookie("darkmode");
 if (dmTheme === "active") {
  console.log("Darkmode is " + dmTheme);
  $("#switching").prop("checked", true);
  darkMode();
  $("#switching").prop("checked", true);
 } else {
   console.log("Darkmode is " + dmTheme);
   $("#switching").prop("checked", false);
 }
}

//Reset variables
var i = null;
var c = null;
var name = null;
var ca = null;

//Writting text
var TxtType = function(el, toRotate, period) {
   this.toRotate = toRotate;
   this.el = el;
   this.loopNum = 0;
   this.period = parseInt(period, 10) || 2000;
   this.txt = '';
   this.tick();
   this.isDeleting = false;
};

TxtType.prototype.tick = function() {
   var i = this.loopNum % this.toRotate.length;
   var fullTxt = this.toRotate[i];

   if (this.isDeleting) {
   this.txt = fullTxt.substring(0, this.txt.length - 1);
   } else {
   this.txt = fullTxt.substring(0, this.txt.length + 1);
   }

   this.el.innerHTML = '<span class="wrap">'+this.txt+'</span>';

   var that = this;
   var delta = 200 - Math.random() * 100;

   if (this.isDeleting) { delta /= 2; }

   if (!this.isDeleting && this.txt === fullTxt) {
   delta = this.period;
   this.isDeleting = true;
   } else if (this.isDeleting && this.txt === '') {
   this.isDeleting = false;
   this.loopNum++;
   delta = 500;
   }

   setTimeout(function() {
   that.tick();
   }, delta);
};

window.onload = function() {
   var elements = document.getElementsByClassName('typewrite');
   for (var i=0; i<elements.length; i++) {
       var toRotate = elements[i].getAttribute('data-type');
       var period = elements[i].getAttribute('data-period');
       if (toRotate) {
         new TxtType(elements[i], JSON.parse(toRotate), period);
       }
   }
   var css = document.createElement("style");
   css.type = "text/css";
   css.innerHTML = ".typewrite > .wrap { border-right: 0.08em solid #fff}";
   document.body.appendChild(css);
};

有一个用于编写文本的 HTML 代码:

<div class="heading">
   <p class="headP">Welcome, I am</p>
<h1>
   <a href="" class="typewrite h11" data-period="2000" data-type='[ "MartanKing.", "Fullstack Developer.", "Junior WebMaster.", "WebDesigner." ]'>
     <span class="wrap"></span>
   </a>
 </h1>
</div>

对于黑暗模式:

   <div class="fdiv2">
       <div class="dark">
       <p class="fotxt2"><i class="fas fa-adjust"></i> DarkMode</p>
       <label class="switch">
       <input type="checkbox" onclick="darkMode()" class="darktogg" id="switching">
       <span class="slider round"></span>
       </label>
       </div>

拜托,我真的需要你的帮助。谢谢

4

0 回答 0