Установите height
из textarea
и переопределите его с помощью !important
.Это гарантирует, что текстовое поле не изменится.Для прокручиваемой части добавьте атрибут rows
и oninput
.oninput
срабатывает каждый раз, когда значение элемента изменяется, даже когда он все еще находится в фокусе.
Подробнее: https://html.com/attributes/textarea-onchange/#ixzz5RoZe3nfp
В файле materialize.css , в классе textarea.materialize-textarea
вы обнаружите, что для overflow-y
установлено значение hidden
,Таким образом, с помощью строк, lineCount и overflow-y можно достичь прокручиваемой материализации текстовой области с фиксированной высотой.
HTML -
<div class="row">
<form class="col s12">
<div class="row">
<div class="input-field col s12">
<textarea id="textarea1" class="materialize-textarea" rows="5" oninput="changedValue()"></textarea>
<label for="textarea1">Textarea</label>
</div>
</div>
</form>
</div>
CSS -
textarea {
height: 8rem !important;
}
JS -
function changedValue() {
let text = document.getElementById("textarea1");
let textValue = text.value;
let row = text.getAttribute('rows');
let lines = textValue.split(/\r|\r\n|\n/);
let count = lines.length;
if (count >= row) {
text.style.overflowY = "scroll";
}
else if (count < row) {
text.style.overflowY = "hidden";
}
}
Кредиты - Ir Calif - Для подсчета строк