Nehmen wir an, ich habe sechs <div>
Elemente in einem Container <div>
. Jedes dieser sechs divs ist ein Quadrat und hat den CSS-Stil float: left
angewendet. Wenn sie den Rand des Containers <div>
erreichen, werden sie standardmäßig umbrochen.Ermitteln Sie die Position des Wrap in floated Elementen
Nun ist meine Frage, mit Javascript, ist es möglich zu bestimmen, bei welchem Element der Wrap ist?
Wenn sie auf der Seite angezeigt werden wie:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
Ich versuche, um zu bestimmen, dass die Umhüllung zwischen dem zweiten und dem dritten Element auftritt. Wenn Sie sich fragen, ob ich meinen Verstand verloren habe, ist der Grund, warum ich das versuche, wenn eines dieser Kästchen angeklickt wird, ich möchte in der Lage sein, einen Infobereich zwischen den Zeilen mit etwas schickem shmansy jQuery abzusetzen.
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
Haben Sie Ideen, wo der Bruch auftritt?
P.S. Der Grund, warum ich schwebe und es automatisch wrap lasse, ist, es reaktionsfähig zu machen. Wenn ich jetzt die Größe des Browsers ändere, werden die Boxen entsprechend umgebrochen. Ich möchte die Spaltenbreiten nicht hart codieren.
[EDIT] Dank der Antwort von Explosion Pills, war ich in der Lage, eine Lösung zu finden.
// Offset of first element
var first = $(".tool:first").offset().left;
var offset = 0;
var count = 0;
$(".box").each(function() {
// Get offset
offset = $(this).offset().left;
// If not first box and offset is equal to first box offset
if(count > 0 && offset == first)
{
// Show where break is
console.log("Breaks on element: " + count);
}
// Next box
count++;
});
Dieser Ausgang der folgende in der Konsole:
Breaks on element: 7
Breaks on element: 14
Breaks on element: 21
Breaks on element: 28
Wann hatte I 30 Boxen, die 7-Boxen breit ist endete und 5 Reihen (letzte Zeile nur 2 Boxen)
Ist der Schwimmer divs relativ oder statische Breite? – smilebomb
Statische Breite, 50x50 px –