我创建了基于dantella's answer 的响应式设计解决方案。这是demo。
HTML
<input id="input1" type="text" data-text="This is an example with a very long text" value="" style="width:200px;" />
<input id="input2" type="text" data-text="This is an example with a very long text" value="" style="width:150px;" />
<input id="input3" type="text" data-text="This is an example with a very long text" value="" style="width:100px;" />
Javascript
var func_showText = function (target, message, index, interval, pixelsPerLetter) {
if (index < message.length) {
var maxLetters = Math.round($(target).width()/ pixelsPerLetter);
var str=$(target).val();
if($(target).val().length > maxLetters){
str=str.substring(str.length-maxLetters, str.length);
}
$(target).val(str+message[index++]);
setTimeout(function () { func_showText(target, message, index, interval, pixelsPerLetter); }, interval);
}
}
func_showText('#input1', $('#input1').attr('data-text'),0,200, 7.5);
func_showText('#input2', $('#input2').attr('data-text'),0,200, 7.5);
func_showText('#input3', $('#input3').attr('data-text'),0,200, 7.5);