2012-04-08 14 views

Antwort

8

Ich habe noch nie verwendet Zepto, aber:

.css('display') !== 'none' 

würde wahrscheinlich funktionieren. Here's a demo.

+0

Die Frage fragt nicht, ob das Element nicht ausgeblendet ist. Was ist, wenn das Element auf "Sichtbarkeit: versteckt" gesetzt ist? – hohner

+0

@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

+1

@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

-1

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.

+2

Zepto nicht unterstützt, damit ': hidden'. – Ryan

+0

+1 für den Link zum gist =) – ryanve

+2

Unsichtbare Elemente haben 'display = none' nicht' display = hidden' – enyo

1

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 
} 
+1

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

+0

Du hast Recht, ich habe das rückwärts gemacht. Lass mich das beheben ... – faino

+0

@minitech hat Recht bezüglich der Anzeigetypen. Als Hack denke ich, dass dies wahrscheinlich die beste Lösung ist – hohner

Verwandte Themen