Puis-je utiliser JavaScript pour vérifier (indépendamment des barres de défilement) si un élément HTML a débordé son contenu? Par exemple, une div longue avec une petite taille fixe, la propriété overflow définie sur visible et aucune barre de défilement sur l'élément.Détermine si le contenu d'un élément HTML déborde
Répondre
Normalement, vous pouvez comparer les client[Height|Width]
avec scroll[Height|Width]
pour pour détecter ceci ... mais les valeurs seront les mêmes quand le débordement est visible. Ainsi, une routine de détection doit tenir compte:
// Determines if the passed element is overflowing its bounds,
// either vertically or horizontally.
// Will temporarily modify the "overflow" style to detect this
// if necessary.
function checkOverflow(el)
{
var curOverflow = el.style.overflow;
if (!curOverflow || curOverflow === "visible")
el.style.overflow = "hidden";
var isOverflowing = el.clientWidth < el.scrollWidth
|| el.clientHeight < el.scrollHeight;
el.style.overflow = curOverflow;
return isOverflowing;
}
testé dans FF3, FF40.0.2, IE6, Chrome 0.2.149.30.
Essayez de comparer element.scrollHeight/element.scrollWidth à element.offsetHeight/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetHeight
http://developer.mozilla.org/en/DOM/element.scrollWidth
http://developer.mozilla.org/en/DOM/element.scrollHeight
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight –
Je ne pense pas que cette réponse soit parfaite. Parfois, scrollWidth/clientWidth/offsetWidth sont identiques même si le texte est overflow.
Cela fonctionne bien dans Chrome, mais pas dans IE et Firefox.
Enfin, j'ai essayé cette réponse: HTML text-overflow ellipsis detection
Il est parfait et fonctionne bien partout. Donc, je choisis cela, peut-être que vous pouvez essayer, vous ne serez pas déçu.
Je suggère d'enlever ou d'annuler cette réponse, car il a un défaut. J'utilise ça au début, mais ça ne marche pas parfaitement avec un style css spécial. – zjalex
Ceci est une solution javascript (avec Mootools) qui réduira la taille de la police pour s'adapter aux limites d'elHeader.
while (elHeader.clientWidth < elHeader.scrollWidth || elHeader.clientHeight < elHeader.scrollHeight) {
var f = parseInt(elHeader.getStyle('font-size'), 10);
f--;
elHeader.setStyle('font-size', f + 'px');
}
Le CSS de elHeader:
width:100%;
font-size:40px;
line-height:36px;
font-family:Arial;
text-align:center;
max-height:36px;
overflow:hidden;
Notez l'emballage de elHeader définit la largeur elHeader.
- 1. copier le contenu d'un élément
- 2. ListView ItemDataBound - détermine si l'élément est AlternatingItem?
- 3. Détermine si un script s'exécute dans pythonw?
- 4. XSLT Insérer le contenu html
- 5. Validation JQuery - détermine si invalidElement est contenu dans un DIV donné
- 6. Le moyen le plus efficace pour déterminer si un élément HTML est dans la fenêtre d'affichage?
- 7. Comment changer le style div parent si le contenu augmente?
- 8. Comment saisir le contenu des balises HTML?
- 9. élément HTML, personnalisé client événement
- 10. Comment développer visuellement un élément HTML dans un bloc div?
- 11. Détermine si une fonction est disponible dans un module Python
- 12. Remplacer le contenu d'une balise HTML par l'analyse XML PHP
- 13. Silverlight: détermine si DataContext est hérité ou non
- 14. Détermine si le périphérique est connecté/déconnecté au port RS232 sans ouvrir le port
- 15. JSON.parse contenu Html
- 16. Comment supprimer le contenu d'un élément avec JQuery?
- 17. Comment spécifiez-vous le contenu d'un élément dans XSD?
- 18. Vérifier si un élément existe
- 19. Qu'est-ce qui détermine si le bouton 'Compatibility View' apparaît dans Internet Explorer 8 ou non?
- 20. Win32: Détermine si le handle stdout est char ou wchar stream
- 21. Détermine si le navigateur client a installé java et peut lancer des applets
- 22. Détermine si l'emplacement de la mémoire est dans le cache de l'UC
- 23. Lire dans le contenu d'un dossier, sur HTML
- 24. HTML: qu'est-ce qui détermine le comportement 'déplacer le focus vers le contrôle suivant lorsque Enter est atteint'
- 25. Télécharger le contenu HTML qui nécessite une autorisation?
- 26. comment montrer le contenu qui includes html tag?
- 27. Remplacer la page HTML avec le contenu récupéré via AJAX
- 28. Définir le contenu de System.Windows.Controls.WebBrowser sur un littéral HTML statique?
- 29. Comment obtenir le contenu de HTML en utilisant VB6
- 30. Rendu de contenu à distance via le cadre html!
merci Shog9 ... la routine de détection est, je pense, ce dont j'avais besoin, parce que je joue avec débordement (caché/visible) –
J'ai une question similaire sur http://stackoverflow.com/questions/2023787/how-to-determine-if-hidden-overflow-text-is-at-top-or-bottom-of -élément où j'essaie de comprendre quelles parties de l'élément contenant ont un débordement caché. – slolife
Je me demande si cela va donner un bref scintillement car le style est brièvement changé? –