我需要你的帮助!我想自动编写文本并打开/关闭 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>
拜托,我真的需要你的帮助。谢谢