Heim > Web-Frontend > js-Tutorial > Wie erstelle ich einen Textbereich mit automatischer Größenanpassung, der beim Löschen von Inhalten kleiner wird?

Wie erstelle ich einen Textbereich mit automatischer Größenanpassung, der beim Löschen von Inhalten kleiner wird?

Susan Sarandon
Freigeben: 2024-12-30 02:08:08
Original
250 Leute haben es durchsucht

How to Create a Self-Resizing TextArea That Shrinks on Content Deletion?

Erstellen eines Textbereichs mit automatischer Größenänderung, der kleiner wird

Herausforderung: Frühere Versuche, einen Textbereich mit automatischer Größenänderung zu erstellen Durch die Größenänderung konnte der Textbereich nicht entsprechend dem Inhalt verkleinert werden Löschung.

Lösung:

Der bereitgestellte Code aus dem ursprünglichen Thread passt die Höhe des Textbereichs basierend auf seinem Inhalt an. Das Löschen von Inhalten wird jedoch nicht berücksichtigt, was zu einem falschen clientHeight-Wert führt.

Um diese Einschränkung zu überwinden, ist eine umfassendere Lösung erforderlich:

function FitToContentWithShrink(id, maxHeight) {
  var text = id && id.style ? id : document.getElementById(id);
  if (!text) return;

  var newHeight = text.scrollHeight;
  var currentHeight = text.clientHeight;

  // Check if the content has changed
  if (newHeight !== currentHeight) {
    if (newHeight > currentHeight) {
      // If the new height is greater than the current height, expand
      text.style.height = newHeight + "px";
    } else if (newHeight < currentHeight) {
      // If the new height is less than the current height, shrink
      text.style.height = newHeight + "px";
    }
  }
}
Nach dem Login kopieren

Vorteile:

  • Verkleinert den Inhalt: Diese Lösung berechnet die neue Höhe korrekt basierend auf Inhaltsänderungen, einschließlich Löschung.
  • Zuverlässig in allen Browsern: Unterstützt Firefox, Chrome, IE, Edge, IOS Safari und Android Browser.
  • Funktioniert mit vorinstalliertem Text: Handles vorab ausgefüllt Textbereiche.
  • Vielseitig: Kann auf alle Textbereiche einer Website angewendet werden.

Verwendung:

window.onload = function () {
  document.getElementById("ta").onkeyup = function () {
    FitToContentWithShrink(this, 500);
  };
};
Nach dem Login kopieren

Zusätzlicher Hinweis:

JavaScript anwenden im strikten Modus hat keinen Einfluss auf die Funktionalität dieser Lösung.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Textbereich mit automatischer Größenanpassung, der beim Löschen von Inhalten kleiner wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage