2015-10-28 3 views
1

Мне нужно адаптировать ширину текстового поля (= '# 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}); 
    } 

Этот код работает, чтобы расширить текстовое поле, если есть длинная линия. Но его нельзя использовать, чтобы уменьшить его, если вы удалите некоторые символы строки.

ответ

1

Вы должны установить минимальное значение до того, как если-часть:

overlay.css({ width: 100 }); 

Тогда высота всегда будет адаптирована к необходимой высоте.

Смежные вопросы