我需要调整文本区域 (='#overlay') 的宽度以适应其内容。最小宽度应为 100 像素:
'input #overlay': function(e) {
var overlay = $('#overlay'),
element = document.getElementById('overlay'),
pos = overlay.position(),
width = 100;
if (element.scrollWidth > element.clientWidth) {
var diff = Math.ceil((element.scrollWidth - element.clientWidth)/20)*20,
left = pos.left - (diff/2);
width = element.scrollWidth + diff;
overlay.css({left: left, width: width});
}
如果一行很长,这段代码可以扩展文本区域。但是如果删除行中的一些字符,它就不能用来变小了。
最佳答案
您必须在 if 部分之前设置最小值:
overlay.css({ width: 100 });
然后高度将始终适应所需的高度。
关于javascript - 使纹理的宽度适应其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33388642/