使纹理宽度适应其内容

时间:2015-10-28 10:31:08

标签: javascript jquery css

我需要调整textarea(='#overlay')的宽度到其内容。最小宽度应为100px:

'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});
    }

如果有一条长行,此代码可以扩展textarea。但如果删除该行的某些字符,则无法使其变小。

1 个答案:

答案 0 :(得分:1)

您必须在if-part:

之前设置最小值
overlay.css({ width: 100 });

然后高度将始终适应所需的高度。