Zepto unterstützt jQuerys .is(':visible')
Technik nicht.So prüfen Sie, ob das Element in Zepto sichtbar ist
Wie überprüfen Sie, ob ein Element sichtbar ist?
Zepto unterstützt jQuerys .is(':visible')
Technik nicht.So prüfen Sie, ob das Element in Zepto sichtbar ist
Wie überprüfen Sie, ob ein Element sichtbar ist?
Ich habe noch nie verwendet Zepto, aber:
.css('display') !== 'none'
würde wahrscheinlich funktionieren. Here's a demo.
Wie wäre es
.css('display') === 'block'
oder, wie MiniTech vorgeschlagen:
.css('display') !== 'hidden'
Wenn Sie wirklich diese Pseudo-Selektoren verwenden müssen, können Sie immer implement them manually.
Ich bin nicht allzu vertraut mit Zepto, aber ich würde sich vorstellen, nur grundlegende JavaScript verwenden könnte irgendeine Form der Erkennung zu tun:
function isVis(ele) {
if(ele.css('display')!='none' && ele.css('visibility')!='hidden' && ele.height()>0) {
return(true);
} else {
return(false);
}
}
Dann im Einsatz:
var div=$('#div_id');
if(isVis(div)) {
// Element is visible
} else {
// Element in not visible
}
block 'ist nicht der einzig mögliche sichtbare 'display'-Typ. Es gibt 'inline',' inline-block', 'table',' table-row', 'table-cell' ... du bekommst das Bild. – Ryan
Du hast Recht, ich habe das rückwärts gemacht. Lass mich das beheben ... – faino
@minitech hat Recht bezüglich der Anzeigetypen. Als Hack denke ich, dass dies wahrscheinlich die beste Lösung ist – hohner
Zepto hat einige offizielle Erweiterungen. Sie können Selektor Modul umfassen .is(':hidden')
Die Frage fragt nicht, ob das Element nicht ausgeblendet ist. Was ist, wenn das Element auf "Sichtbarkeit: versteckt" gesetzt ist? – hohner
@minitech Nett/danke - Ich dachte, es wäre es. Ich war mir nicht sicher, ob Zepto einen anderen Weg hatte. Bonzo (https://github.com/ded/bonzo) macht im Prinzip auch so etwas, wenn man sich die Quelle seiner '.toggle()' Methode anschaut. Es überprüft native 'el.style.display! == 'none'' und ob eine Breite oder Höhe vorhanden ist. – ryanve
@Jamie "Elemente mit' visibility: hidden' oder 'opacity: 0' werden als sichtbar betrachtet, da sie immer noch Platz im Layout verbrauchen", so http://api.jquery.com/visible-selector/ – ryanve