1

Тема: Програмне встановлення стилів елемента через `style.heigth`.

У мене є елементарний скрипт для автоматичного встановлення висоти textarea на plunker. Якщо ви будете вводити багаторядковий текст в textarea правого вікна, то побачите його роботу.

Питання у мене наступне: "Як можна пояснити повторне встановлення значень у el.style.height?".

el.style.height = 'auto';
el.style.height = el.scrollHeight + 'px';

Якщо залишити лише друге встановлення висоти, то textarea некоректно змінює висоту. Наприклад, якщо спочатку надрукувати декілька рядків тексту, а потім виділити увесь текст й видалити, то висота не зменшиться до початкових розмірів.

// el.style.height = 'auto';
el.style.height = el.scrollHeight + 'px';

Я можу звичайно припустити, що el.style.height - це сеттер і він десь накопичує усі введені значення, але якось це не логічно. Для чого запам'ятовувати старі значення?

Подякували: 0xDADA11C7, 221VOLT2

2 Востаннє редагувалося ktretyak (06.05.2017 15:42:32)

Re: Програмне встановлення стилів елемента через `style.heigth`.

Магія продовжується. Тільки щось публікую, досить швидко знаходжу сам відповідь =).

Мабуть справа в тому, що JavaScript не очікує завершення скрипта, щоб потім встановити кінцевий результат. Тобто спочатку el.style.height = 'auto' робить свою справу, а потім вже й el.style.height = el.scrollHeight + 'px' міряє цю висоту.

Подякували: 0xDADA11C7, 221VOLT2