Maison >interface Web >js tutoriel >Comment redimensionner automatiquement les zones de texte avec un prototype ?

Comment redimensionner automatiquement les zones de texte avec un prototype ?

DDD
DDDoriginal
2024-10-20 21:28:30531parcourir

How to Auto-Resize Textareas with Prototype?

Redimensionnement automatique des zones de texte avec prototype

Développant l'idée d'améliorer l'expérience utilisateur en redimensionnant automatiquement les zones de texte, cet article se penche sur un solution utilisant le framework Prototype JavaScript. L'objectif est d'ajuster la hauteur de la zone de texte en fonction de la quantité de texte qu'elle contient, améliorant ainsi l'esthétique et la lisibilité.

Redimensionnement vertical avec prototype

Le prototype fournit un moyen pratique d'atteindre ce comportement. Une fois la bibliothèque Prototype chargée, vous pouvez implémenter le script suivant :

resizeIt = function() {
  var str = $('iso_address').value; // Replace 'iso_address' with your textarea ID
  var cols = $('iso_address').cols;
  var linecount = 0;

  $A(str.split("\n")).each(function(l) {
    linecount += 1 + Math.floor(l.length / cols); // Consider long lines
  })

  $('iso_address').rows = linecount;
};

Liaison aux événements

Pour déclencher l'ajustement de la zone de texte lors de la saisie de l'utilisateur, vous pouvez lier la fonction resizeIt à un gestionnaire d'événements. Par exemple, pour redimensionner lors d'une saisie au clavier :

Event.observe('iso_address', 'keydown', resizeIt);

Explication

La fonction resizeIt :

  • Récupère la valeur et le numéro de la zone de texte de colonnes.
  • Divise le texte en lignes et calcule le nombre de lignes requis en fonction du nombre de lignes et de la largeur des colonnes.
  • Définit l'attribut de lignes de la zone de texte sur la valeur calculée.

Redimensionnement horizontal

Bien que cette approche gère le redimensionnement automatique vertical, le redimensionnement horizontal n'est généralement pas recommandé en raison de la nature imprévisible du retour à la ligne et de la longueur des lignes. Cependant, si vous le souhaitez, vous pouvez explorer des solutions personnalisées ou des bibliothèques externes qui prennent en compte de telles complexités.

Conseils supplémentaires

  • Pour une meilleure expérience utilisateur, vous souhaiterez peut-être déclencher le redimensionnement uniquement après que l'utilisateur a arrêté de taper pendant une brève période (par exemple, en utilisant window.setTimeout).
  • Bien que l'exemple JavaScript soit simple, il n'est pas entièrement testé et peut nécessiter des ajustements pour vos besoins spécifiques en matière de zone de texte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn