JSFiddle ist überfüllt: https://jsfiddle.net/1fLmtyoj/15/A Funktion zu bestimmen, ob LI
Ich folge dieses Beispiel zu sehen, ob ein Element ist überfüllt, aber etwas nicht funktioniert, dann ist dies für einen DIV: Check with jquery if div has overflowing elements und https://stackoverflow.com/a/7668692/1005607
Ich habe ein <LI>
Etikett mit <SPAN>
s. Von der obigen Antwort ist es notwendig zu überprüfen (1) Überlauf aktiv, (2) halb sichtbare Teile. Ich habe sie in die folgende Funktion kombiniert.
function isOverflowing(element) {
// 1. Main Part for overflow check
if (element.offsetHeight < element.scrollHeight ||
element.offsetWidth < element.scrollWidth) {
return true;
}
// 2. Partially invisible items
var invisibleItems = [];
for(var i=0; i<element.childElementCount; i++){
if (element.children[i].offsetTop + element.children[i].offsetHeight >
element.offsetTop + element.offsetHeight ||
element.children[i].offsetLeft + element.children[i].offsetWidth >
element.offsetLeft + element.offsetWidth){
invisibleItems.push(element.children[i]);
}
}
if (invisibleItems.length) {
return true;
}
// Otherwise, neither Part 1 nor 2, return FALSE
return false;
}
Im JSFiddle ist die erwartete Ausgabe dass 3 # 1 und # quillt über nicht, aber # 2 und # 4 sind überfüllt. Aber alle 4 sind als nicht überfüllt dargestellt.
Kurz gesagt, Ihr Selektor '$ ('li: eq (0)')' gibt ein Array zurück. Sie müssen sich 'element [0]' anschauen - zum Beispiel gibt 'element [0] .childElementCount' das wieder, wonach Sie suchen. – Snowmonkey