Javascript 如何实现这种键入和删除效果?

Javascript 如何实现这种键入和删除效果?,javascript,html,css,Javascript,Html,Css,我想复制此网站的键入和删除效果: 我一直在尝试使用代码块、HTML、CSS和JS来解决这个问题。然而,经过数小时和数天的努力,我似乎无法让它发挥作用 这显然是我的问题,因为我对编码相当陌生 我真的想要这个精确的输入和删除效果与闪烁的光标。我当然会使用我自己的徽标和固定文本,但需要一些指导和帮助来复制上面提供的链接中的Canter示例…:-您不需要任何库 HTML JS 参考资料:您具体尝试了什么?你被困在哪里了?我从codepen试过。。。复制并粘贴HTML、CSS,但我在使用JS时遇到了问题。

我想复制此网站的键入和删除效果:

我一直在尝试使用代码块、HTML、CSS和JS来解决这个问题。然而,经过数小时和数天的努力,我似乎无法让它发挥作用

这显然是我的问题,因为我对编码相当陌生


我真的想要这个精确的输入和删除效果与闪烁的光标。我当然会使用我自己的徽标和固定文本,但需要一些指导和帮助来复制上面提供的链接中的Canter示例…:-

您不需要任何库

HTML

JS


参考资料:

您具体尝试了什么?你被困在哪里了?我从codepen试过。。。复制并粘贴HTML、CSS,但我在使用JS时遇到了问题。我是新来的,不知道如何处理JS代码。你能把代码笔拿在手边让读者看到吗?请把它编辑成你的问题。在现在删除的答案中提供。因此,我复制HTML并将其粘贴到代码块中。然后我复制并粘贴自定义CSS中的CSS,它使光标在页面上闪烁。。。但是我应该把JS放在哪里呢?我试过把它放在代码块中,但没用,然后又试过自定义CSS没用。有没有特别的地方可以放JS?再次感谢你,伙计!创建一个脚本文件,如script.js或index.js,将js代码放在那里,并在.html文件中引用脚本文件。或者,如果您发现这很困难,您可以使用script标记将代码嵌入到HTML中。我在这里为你制作了一个演示,谢谢你,Rathnakara。我禁用了一个脚本和一个嵌入式脚本框。。。然而,我是一个非常新的人,正在尝试自己建立我的网站,这可能是我对JS部分的想法,因为我不知道我在做什么。我真的很感谢你迄今为止的帮助,如果你不想在这件事上浪费时间的话,我理解。
  <div class="flex">
    <p class="header-sub-title" id="word"></p><p class="header-sub-title blink">|</p>
</div>
@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;
}
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();