Я пытаюсь реализовать такое поведение, как этот, то есть перетаскиваемая изменяемая текстовая область с динамическим размером шрифта. Я должен признать, что я совершенно новичок в веб-дизайне, поэтому простите меня, если я напишу какую-то глупую вещь.
У меня возникает следующая проблема при попытке изменить размер шрифта в текстовой области, ниже приведен код, который я использую для изменения размера шрифта в зависимости от высоты textarea
// Called on keyup
that._adaptFontSize = function(){
var i = 1;
while ( $textArea[0].scrollHeight <= $textArea.height() ){
console.log('Iteration : '+(i++));
$textArea.css('font-size', '+=1');
}
};
Моя идея состоит в том, чтобы максимизировать размер шрифта на основе высоты textarea (возможно, я должен также рассмотреть ширину.
Моя проблема заключается в том, что приведенный выше код создает разные результаты на основе браузера, в Chrome и Safari размер шрифта в конце цикла одинаковый для Firefox - это двойной, я действительно не понимаю, что происходит. этот базовый fiddle показывает проблему
ОБНОВЛЕНИЕ 1
Я обнаружил, что проблема вычисления неправильного размера происходит из присутствия заполнителя.
Итак, в основном на Chrome/Safari, если нет заполнителя, размер шрифта в конце итерации равен размеру, который я получаю в Firefox. Таким образом, есть что-то не так, полагаясь на местозаполнитель для вычисления максимального размера.
ОБНОВЛЕНИЕ 2
следующий fiddle делает более или менее то, что я хотел бы достичь, реальная проблема , что она не работает на IE 10, причина в том, что scrollHeight на IE10 не изменяется при изменении размера шрифта.
ОБНОВЛЕНИЕ 3
По-видимому, scrollHeight на IE10 не получает обновления при увеличении размера шрифта внутри цикла. В основном это наивный метод, используемый для подгонки шрифта внутри текстового поля.
Мне было интересно, существует ли альтернатива scrollHeight для решения этой проблемы, но пока я не нашел никакого рабочего решения