javascript - 使纹理的宽度适应其内容

标签 javascript jquery css

我需要调整文本区域 (='#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/

相关文章:

javascript - VueJS 调度函数的执行顺序导致问题

javascript - 使用 jquery 在移动浏览器中检索屏幕的视口(viewport)高度

javascript - 无法让我的导航栏适合所有页面

javascript - jquery 函数将 css 应用于图像

jquery UI datepicker 隐藏日期选择器

javascript - 无法在浏览器上显示内容-AngularJS

javascript - 如何使用 Backbone.js 在模型上设置动态属性

javascript - 当用户想要重新加载页面时自定义 url

javascript - 添加 Javascript 数组到表单输入

css - 按钮大小与样式不同