2013-06-28 39 views
0

我嘗試創建一個更現實的打字,這使得打字錯誤,並通過刪除/添加字符糾正他們。創建一個更現實的打字效果,刪除/添加字符隨機

然而,我提出了簡單的解決方案,可以通過slice添加和刪除字符。但我不知道如何實現這種歪曲功能。

這是我到目前爲止已經完成:

var str = 'Foo bar is not equal to bar foo.'; 
var len = str.length; 

var elem = document.body; 

var rem = len; 
var add = 0; 

(function type(){ 
    if(!rem || add === len) return; 

    // write 
    elem.innerHTML = str.slice(0, ++add); 

    // remove 
    // elem.innerHTML = str.slice(0, --rem); 

    setTimeout(type, 100); 
}()); 

http://jsbin.com/upufaf/6/edit

任何意見或已經完成的解決方案如何得到這個工作?

BTW:有已經叫做realistic typewriter,但是我覺得這個解是簡單的問題有點過於臃腫。

回答

0
var str = 'Foo bar is not equal to bar foo.' ; 
var alphabet = 'abcdefghijklmnopqrstuvwxyz' ; 
var pos = 0 ; 
var tmpStr = '' ; 
var doBackspace = false ; 
function startTyping (str) { 

    if(doBackspace) { 
     tmpStr = tmpStr.slice(0,tmpStr.length-1); 
     doBackspace = false ; 
    } else { 

     if(Math.ceil((Math.random()*100)) < 80) { 
      tmpStr += str[pos] ; 
      pos++ ; 

     } else { 
      tmpStr += alphabet[Math.floor(Math.random()*(alphabet.length))] ; 
      doBackspace = true ; 
     } 
    } 
    $('body').html(tmpStr) ; 

    if(pos < str.length) { 
     setTimeout(function(){ 
      startTyping(str) 
     }, 300) ; 
    } 
} 
$(document).ready(function(){ 
    startTyping(str) ; 
}); 

可以改變間隔300更高的值來降低打字速度,還可以添加字符字母,以增加80可能的誤字符數,以較低的值,以增加機會犯錯

+0

太好了!非常感謝 :-* – yckart

相關問題