Gibt es einen einheitlichen Weg zu wissen, ob ein Knoten sichtbar ist oder nicht?

8

Ich möchte wissen, ob ein Knoten sichtbar und auf dem Bildschirm gerendert ist. Soweit ich weiß, gibt es mindestens 3 Standard-und einfache Möglichkeiten, HTML-Knoten nicht sichtbar zu machen:

  • Einstellung opacity: 0 ;
  • Einstellung display: none ;
  • Einstellung visibility: hidden .

Ich könnte nach diesen drei suchen, aber ich fürchte, dass Leute kreativ werden können, wenn es darum geht, Inhalte zu verstecken:

  • Senden des Elements außerhalb des Bildschirms mit negativen Rändern;
  • Verwenden Sie eine Breite oder Höhe von 0 und verstecken Sie den Überlauf;
  • viel mehr Ich vertraue darauf, dass Menschen sich entwickelt haben.

Ich habe mich also gefragt, ob es eine Standardmethode gibt, um zu bestimmen, ob ein Knoten auf dem Bildschirm gerendert wird. Ich bin mir ziemlich sicher, dass alle großen Browser es für sich selbst bestimmen, um das Zeichnen zu beschleunigen, also ist es vielleicht irgendwie sichtbar.

    
zneak 17.06.2010, 21:32
quelle

2 Antworten

1

Sie könnten versuchen, den Modifizierer :visible von jQuery zu verwenden.

Ссылка

Leider bin ich mir ziemlich sicher, dass die "heiklen" Fälle, über die Sie sprechen, nicht berücksichtigt werden.

    
Thomas 17.06.2010 21:53
quelle
0

Wenn dies Ihre Seite ist, können Sie die meiste Kontrolle haben und es wird eine Frage der Anwendung der von Ihnen implementierten Standards. Wenn dies eine forign Seite ist (z. B. wenn Sie ein Bookmarklet schreiben), ist die Anzahl der Variablen extrem groß.

Sichtbarkeit bedeutet für Personen und Browser unterschiedliche Dinge. Der Browser muss den Kontext und das Layout der Seite kennen und wissen, ob ein Objekt Platz beansprucht, was auch in den Fällen opacity:0 und visibility:hidden der Fall ist, weshalb jQuery so funktioniert.

Also müsstest du dir das jeweilige Element ansehen, einschließlich seiner Ränder, Padding, Überlaufattribute, Sichtbarkeit, Anzeige, alle Opazitätseinstellungen, überprüfe auch auf color:rgba(*,*,*,0) , denke ich. Dann müssen Sie jedes übergeordnete Objekt bis zum Dokument zurückverfolgen.

    
Phil 18.06.2010 00:31
quelle

Tags und Links