在javascript中模拟键入的外观,而不是实际的按键
Simulate the look of typing, not the actual keypresses, in javascript
我想写一个简单的函数,使它看起来好像有人在输入textarea
——这是我的函数(原谅我,如果它很糟糕,但我通常不使用javascript)——console.log()
部分工作得很好,但由于某种原因,我无法让这个脚本以我期望的方式更新dom…
function type(string) {
value = "";
el = document.getElementById("typeArea");
for (var i = 0; i < string.length; i++) {
value += string[i];
//$("#fbw > textarea").val(value);
el.textContent = value;
console.log(value);
sleep(160);
}
sleep(2000);
}
我很感激你能给我的任何见解。
jsFiddle Demo
你所缺少的只是一个构式而不是Sleep
。js实现这一点的方法是使用超时和递归调用来遍历字符串
function type(string,element){
(function writer(i){
if(string.length <= i++){
element.value = string;
return;
}
element.value = string.substring(0,i);
if( element.value[element.value.length-1] != " " )element.focus();
var rand = Math.floor(Math.random() * (100)) + 140;
setTimeout(function(){writer(i);},rand);
})(0)
}
您可以使用setTimeout函数做类似的事情。 Codepen
$(function(){
simulateTyping('looks like someone is typing...', '#txt')
function simulateTyping(str, textAreaId) {
var textArea = $(textAreaId);
var currentCharIndex = 0;
function typeChar(){
if (currentCharIndex >= str.length)
return;
var char = str[currentCharIndex];
textArea.val(textArea.val() + char);
currentCharIndex ++;
setTimeout(typeChar, 500);
}
typeChar();
}
})
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- Javascript中的特定正则表达式正面外观(around|ahead|behind)
- JavaScript和Mongo中的外观问题
- 正则表达式负面外观在 JavaScript 中无效
- 正则表达式,负面的 JavaScript 背后的外观
- Javascript Stylistics - 具有专业外观的代码
- PDF中的自定义操作链接.编写Javascript以更改单击时链接的外观
- Javascript负面外观相同的字符
- 一行中删除按钮的javascript默认外观
- 更改JavaScript中警报框的外观
- 调整javascript-Shield UI图表的外观
- 这个Javascript在jquery中的外观
- 可拖动小部件,如何延迟外观和替换坐标与javascript
- 获取当前url并更改页面外观的Javascript
- 在Javascript中,我需要一个RegEx来删除具有多个外观的两个文本(范围)之间的字符串中的文本
- 我怎样才能知道用户是否篡改了CSS或JavaScript来改变我网站的外观?
- 改变JavaScript Alert()或Prompt()的外观
- 在javascript中模拟键入的外观,而不是实际的按键
- javascript replace()给定字符串的所有外观
- JavaScript到jQuery的代码转换,该代码适用于带有单选按钮的文本字段的动态外观和消失