[英]Replicate user's input as typing effect in Javascript
我正在尝试从用户输入中捕获一个句子并将其复制为打字效果。 我正在使用JavaScript执行任务。
我能够捕获输入并使用console.log()
显示它,但是当我添加打字效果功能时,它似乎不起作用。
我的代码如下。 怎么了
var getInput = document.getElementById("input"); getInput.onkeyup = function(e) { if (e.keyCode == 13) { var i = 0; var text = input.value; function typing() { if (i < text.length) { document.getElementById('output').innerHTML += text.charAt(i); i++; setTimeout(typeWriter, 200); } } e.currentTarget.value = ""; } }
<link href="https://fonts.googleapis.com/css?family=Francois+One" rel="stylesheet"> <div class="background"></div> <div class="input"></div> <div class="typing"> <div class="input-group"> <div class="form-group"> <label for="text">Please Type Here:</label> <input type="text" class="form-control" id="input"> </div> </div> </div> <div class="output" id="output"> </div>
您已经定义了typing
函数,但尚未调用它。
另外,在setTimeout
,您调用了typeWriter
函数,该函数undefined
。 你想叫typing
代替:
var getInput = document.getElementById("input"); getInput.onkeyup = function(e) { if (e.keyCode == 13) { var i = 0; var text = input.value; function typing() { if (i < text.length) { document.getElementById('output').innerHTML += text.charAt(i); i++; setTimeout(typing, 200); } } typing(); e.currentTarget.value = ""; } }
<div class="background"></div> <div class="input"></div> <div class="typing"> <div class="input-group"> <div class="form-group"> <label for="text">Please Type Here:</label> <input type="text" class="form-control" id="input"> </div> </div> </div> <div class="output" id="output"> </div>
您可以在Javascript中使用keyup
事件并收听该事件,并在每次键盘击键时更新DOM元素。
window.onload = function() { let myInputElement = document.querySelector(`#myInput`); if (myInputElement) { myInputElement.addEventListener('keyup', function(event) { let myTextElement = document.querySelector(`#myText`); myTextElement.innerText = myInputElement.value; }); } }
<html> <head> </head> <body> <input id="myInput" /> <br> <hr> <p id="myText"></p> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.