I need your help! I want to automatic writing text and turn ON/OFF DarkMode. I copied writing text from other developer. But I create DarkMode alone. Writing text was working. DarkMode too. But when I use both on one page, one of these doesn’t work. I checked all same variables, I even add some null values to variables to reset it. Or I try to use different values. But nothing. What with this, please?
This is 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);
};
There is a HTML Code for writing text:
<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>
And for the DarkMode:
<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>
Please, I really need your help. Thank you