我想复制这个网站的打字删除效果:http://www.cantercompanies.com .
我一直在尝试使用代码块、HTML、CSS 和 JS 来解决这个问题。但是,经过数小时和数天的尝试,我似乎无法让它工作。
这显然是在我这边,因为我对编码还很陌生。
我真的想要这种带有闪烁光标的精确键入和删除效果。我当然会使用自己的 Logo 和固定文本,但需要一些指导和帮助来复制上面提供的链接中坎特的示例……:-)
最佳答案
你不需要任何库,
HTML
<div class="flex">
<p class="header-sub-title" id="word"></p><p class="header-sub-title blink">|</p>
</div>
CSS
@import 'https://fonts.googleapis.com/css?family=Roboto';
html, body {
background-color: #000;
}
h2, a, p {
color: #fff;
font-family: Roboto;
text-decoration: none;
}
p>a {
color: #fd084a;
}
.blink {
animation: blink 0.5s infinite;
}
@keyframes blink{
to { opacity: .0; }
}
.flex {
display: flex;
}
.header-sub-title {
color: #fff;
font-family: "Courier";
font-size: 20px;
padding: 0.1em;
}
JS
const words = ["CSS3.", "HTML5.", "javascript."];
let i = 0;
let timer;
function typingEffect() {
let word = words[i].split("");
var loopTyping = function() {
if (word.length > 0) {
document.getElementById('word').innerHTML += word.shift();
} else {
deletingEffect();
return false;
};
timer = setTimeout(loopTyping, 500);
};
loopTyping();
};
function deletingEffect() {
let word = words[i].split("");
var loopDeleting = function() {
if (word.length > 0) {
word.pop();
document.getElementById('word').innerHTML = word.join("");
} else {
if (words.length > (i + 1)) {
i++;
} else {
i = 0;
};
typingEffect();
return false;
};
timer = setTimeout(loopDeleting, 200);
};
loopDeleting();
};
typingEffect();
关于javascript - 如何实现这种打字和删除的效果呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54849362/