Digamos que tengo seis elementos <div>
dentro de un contenedor <div>
. Cada uno de estos seis divs es un cuadrado y tiene aplicado el estilo CSS float: left
. De forma predeterminada, cuando alcanzan el borde del contenedor <div>
se envolverán.Determine la ubicación de la envoltura en los elementos flotados
Ahora, mi pregunta es, mediante Javascript, ¿es posible determinar en qué elemento está la envoltura?
Si se muestran en la página como:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
Estoy tratando de determinar que la envoltura se produce entre el segundo y el tercer elemento. En caso de que se pregunte si he perdido la razón, la razón por la que estoy tratando de hacer esto es si se hace clic en una de esas casillas, quiero poder desplegar un área de información entre las filas con algún jQuery extravagante.
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
¿Alguna idea sobre determinar dónde se produce la ruptura?
P.S. La razón por la que estoy flotando y dejar que se autoenvuelva es hacerlo receptivo. En este momento, si cambio el tamaño del navegador, envuelve los cuadros en consecuencia. No quiero codificar el ancho de las columnas.
[EDIT] Gracias a la respuesta proporcionada por las píldoras de explosión, que era capaz de llegar a una solución.
// 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++;
});
Esta salida lo siguiente en la consola:
Breaks on element: 7
Breaks on element: 14
Breaks on element: 21
Breaks on element: 28
Cuando tenía 30 cajas, que terminó siendo 7 cajas de ancho y 5 filas (última fila sólo 2 cajas)
Son los divs flotador anchura relativa o estática? – smilebomb
Ancho estático, 50x50 px –