Diciamo che ho sei elementi all'interno di un contenitore <div>
. Ciascuno di questi sei div è un quadrato e ha lo stile CSS float: left
applicato. Per impostazione predefinita, quando raggiungono il bordo del contenitore, <div>
verranno completati.Determinare la posizione di avvolgimento in elementi fluttuati
Ora, la mia domanda è, utilizzando Javascript, è possibile determinare a quale elemento è l'involucro?
Se si visualizzano sulla pagina come:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
Sto cercando di determinare che l'involucro si verifica tra il secondo e il terzo elemento. Nel caso ti stia chiedendo se ho perso la testa, la ragione per cui sto provando a farlo è se si fa clic su una di quelle caselle, voglio essere in grado di rilasciare un'area informazioni tra le righe con qualche jQuery di shmansy di fantasia.
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
Qualche idea su come determinare dove si verifica l'interruzione?
P.S. Il motivo per cui sto fluttuando e lasciandolo avvolgere automaticamente è renderlo reattivo. In questo momento se ridimensiono il browser, avvolge le scatole di conseguenza. Non voglio le larghezze delle colonne del codice duro.
[EDIT] Grazie alla risposta fornita da Explosion Pills, sono riuscito a trovare una soluzione.
// 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++;
});
Questa uscita seguente nella console:
Breaks on element: 7
Breaks on element: 14
Breaks on element: 21
Breaks on element: 28
Quando avevo 30 scatole, che si è rilevata un'ampia 7 scatole e 5 righe (ultima riga solo 2 scatole)
Sono div galleggiante larghezza relativa o statico? – smilebomb
Larghezza statica, 50x50 px –