Ist es möglich, die Sichtbarkeit eines Elements umzuschalten, indem man die Funktionen .hide()
, .show()
ou .toggle()
?
Wie würden Sie testen, ob ein Element visible
ou hidden
?
Ist es möglich, die Sichtbarkeit eines Elements umzuschalten, indem man die Funktionen .hide()
, .show()
ou .toggle()
?
Wie würden Sie testen, ob ein Element visible
ou hidden
?
Denn Elements with visibility: hidden or opacity: 0 are considered visible, since they still consume space in the layout
(wie beschrieben für jQuery :visible Selektor ) - wir können prüfen, ob das Element wirklich auf diese Weise sichtbar:
function isElementReallyHidden (el) {
return $(el).is(":hidden") || $(el).css("visibility") == "hidden" || $(el).css('opacity') == 0;
}
var booElementReallyShowed = !isElementReallyHidden(someEl);
$(someEl).parents().each(function () {
if (isElementReallyHidden(this)) {
booElementReallyShowed = false;
}
});
Was aber, wenn das CSS des Elements wie folgt aussieht?
.element{
position: absolute;left:-9999;
}
Also diese Antwort auf eine Stack Overflow-Frage So prüfen Sie, ob ein Element außerhalb des Bildschirms liegt sollte ebenfalls berücksichtigt werden.
Es kann eine Funktion erstellt werden, die auf Sichtbarkeits-/Anzeigeattribute prüft, um festzustellen, ob das Element auf der Benutzeroberfläche angezeigt wird oder nicht.
function checkUIElementVisible(element) {
return ((element.css('display') !== 'none') && (element.css('visibility') !== 'hidden'));
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
68 Stimmen
Es ist erwähnenswert (auch nach all dieser Zeit), dass
$(element).is(":visible")
funktioniert für jQuery 1.4.4, aber nicht für jQuery 1.3.2, unter Internet Explorer 8 . Dies kann getestet werden mit Tsvetomir Tsonevs hilfreiches Test-Snippet . Denken Sie einfach daran, die Version von jQuery zu ändern, um unter jedem zu testen.5 Stimmen
Dies ist eine verwandte, wenn auch andere Frage: stackoverflow.com/questions/17425543/
2 Stimmen
Wenn Sie nicht an der virtuellen Ausblendung von CSS-Elementen interessiert sind, sondern an der physischen Sichtbarkeit im "Viewport-Bereich" für den Benutzer, dann sollten Sie sich Folgendes ansehen stackoverflow.com/questions/487073/ y stackoverflow.com/questions/123999/