Javascript 无法将用户输入文本字符串(仅单行)的字体大小缩小为文本区域/框,窗口大小也随之调整

Javascript 无法将用户输入文本字符串(仅单行)的字体大小缩小为文本区域/框,窗口大小也随之调整,javascript,jquery,html,css,text,Javascript,Jquery,Html,Css,Text,我试图缩小文本框/区域中的单行文本字符串。见下面的例子。写代码的功劳归于 //txt是要度量的文本,font是完整的CSS字体声明, //例如,“粗体12px Verdana” 函数measureText(txt,字体){ 变量id='文本宽度测试仪', $tag=$(“#”+id); 如果(!$tag.length){ $tag=$(''+txt+''); $('body')。追加($tag); }否则{ $tag.css({ 字体:字体 }).html(txt); } 返回{ 宽度:$t

我试图缩小文本框/区域中的单行文本字符串。见下面的例子。写代码的功劳归于

//txt是要度量的文本,font是完整的CSS字体声明,
//例如,“粗体12px Verdana”
函数measureText(txt,字体){
变量id='文本宽度测试仪',
$tag=$(“#”+id);
如果(!$tag.length){
$tag=$(''+txt+'');
$('body')。追加($tag);
}否则{
$tag.css({
字体:字体
}).html(txt);
}
返回{
宽度:$tag.width(),
高度:$tag.height()
}
}
函数收缩填充(输入、fontSize、fontWeight、fontFamily){
变量$input=$(输入),
txt=$input.val(),
maxWidth=$input.width(),
font=fontWeight+“”+fontSize+“px”+fontFamily;
//查看文本在默认大小下的大小
var textWidth=measureText(txt,font).width+measureText(txt,font).width*.1;//填充以防止截断字母?
如果(文本宽度>最大宽度){
//如果太大,请计算新的字体大小
//这里额外的0.9弥补了一些过度措施
fontSize=fontSize*maxWidth/textWidth*.9;
font=fontWeight+“”+fontSize+“px”+fontFamily;
//并在输入上设置样式
$input.css({
字体:字体
});
}否则{
//如果字体大小已设置为较小且
//文本随后被删除
$input.css({
字体:字体
});
}
}
$(函数(){
$(“#我的输入”).keyup(函数(){
shrinkToFill(这个,100,“,”乔治亚州,衬线“);
})
});
输入{
字体:100px格鲁吉亚,衬线;
宽度:80%;
高度:300px;
线高:30px;
文本对齐:居中;
位置:绝对位置;
边框宽度:0;
保证金权利:5%;
左缘:5%;
最高:25%;
}
*:焦点{
大纲:无;
}


我昨天看了这篇文章,除了它的空格之外,我想不出还有什么东西会把代码弄乱,这可能是因为字符空格没有附加字体大小。我很好奇,你有没有发现任何指向解决方案的东西?昨天,我在研究是否存在导致字符串字体大小没有减小的文本宽度计算错误。我访问了这个网站:否则我没有取得任何进展。我昨天看了这个网站,除了它的空格外,我想不出还有什么地方会把代码弄乱,这可能是因为字符空格没有附加字体大小。我很好奇,你有没有发现任何指向解决方案的东西?昨天,我在研究是否存在导致字符串字体大小没有减小的文本宽度计算错误。我访问了这个网站:否则我没有取得任何进展。