Wie das dynamische Spaltenlayout von Pinterest Unabhängigkeit vom vertikalen Stapeln erreicht
Das unverwechselbare Layout von Pinterest passt die Spaltenbreiten und die vertikale Pin-Platzierung dynamisch an, um die Größenänderung des Browsers zu berücksichtigen. Im Gegensatz zum herkömmlichen Stapeln, bei dem benachbarte Spaltenhöhen sich gegenseitig beeinflussen, verwendet Pinterest eine absolute Positionierungstechnik, um die vertikale Unabhängigkeit zu wahren.
Grundprinzipien:
-
Absolute Positionierung: Alle Stiftbehälter sind absolut positioniert, um eine präzise Kontrolle über sie zu ermöglichen Standort.
-
Dynamisches Spaltenlayout: Die Anzahl der Spalten wird basierend auf der verfügbaren Browserbreite und einer vordefinierten Spaltenbreite berechnet.
-
Höhenverfolgung: Ein Array wird verwendet, um die Höhen jeder Spalte zu speichern, wenn Pins hinzugefügt werden.
-
Kürzeste Spalte Auswahl: Pins werden zum Zeitpunkt ihrer Hinzufügung strategisch in der kürzesten Spalte platziert.
Algorithmusdetails:
-
Initialisierung:
- Pin-Container sind absolut positioniert.
- Spaltenbreite und Bundstegrand werden bestimmt.
- Es wird ein Array erstellt, um die Höhe jeder Spalte zu verfolgen.
-
Pin-Platzierungsschleife:
- Pins werden nacheinander durchlaufen eins.
- Die kürzeste Spalte wird identifiziert.
- Die linke Position des Pins wird auf die Spaltenbreite und den Rand multipliziert mit dem Spaltenindex festgelegt.
- Die obere Position des Pins wird festgelegt auf die im Array gespeicherte Höhe für die kürzeste Spalte zu diesem Zeitpunkt.
- Die Höhe der kürzesten Spalte wird durch Hinzufügen der Pins aktualisiert Höhe.
-
Optimierte Leistung:
- Diese Layoutstrategie stellt sicher, dass die vertikale Stapelung unabhängig von benachbarten Spaltenhöhen ist in einem ansprechenden und effizienten Layout.
Das obige ist der detaillierte Inhalt vonWie erreicht Pinterest in seinem dynamischen Spaltenlayout vertikale Stapelunabhängigkeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!