.offset([coordinates])
El método establece las coordenadas de un elemento pero solo en relación con el documento. Entonces, ¿cómo puedo establecer coordenadas de un elemento pero en relación con el padre?
Encontré que el .position()
método obtiene solo valores "superiores, izquierdos" relativos al padre, pero no establece ningún valor.
Lo intenté con
$("#mydiv").css({top: 200, left: 200});
Pero no funciona.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- bueno$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- malo. Aparentemente, si los valores de posición son cadenas , debe incluir las unidades, o no tendrá ningún efecto.fuente
Puede probar el método .position de jQuery UI .
Verifique la demostración de trabajo.
fuente
Descubrí que si el valor pasado es un tipo de cadena, debe ir seguido de 'px' (es decir, 90 px), donde si el valor es un entero, agregará el px automáticamente. las propiedades de ancho y alto son más indulgentes (cualquier tipo funciona).
fuente
Código offset dinámico para página dinámica
fuente
Refrescando mi memoria en la posición de ajuste, llego a esto tan tarde que no sé si alguien más lo verá, pero ...
No me gusta establecer la posición usando
css()
, aunque a menudo está bien. Creo que la mejor opción es usar elposition()
setter de jQuery UI como lo señala xdazz. Sin embargo, si jQuery UI no es, por alguna razón, una opción (pero jQuery sí lo es), prefiero esto:Esto tiene la ventaja de no establecer arbitrariamente a
$div
los padres en un posicionamiento relativo (¿qué pasaría si$div
el padre estuviera, en sí mismo, en una posición absoluta dentro de otra cosa?). Creo que el único caso mayor ventaja es que si$div
no tiene ningunaoffsetParent
, no estoy seguro si volveríadocument
,null
o algo completamente distinto.offsetParent
ha estado disponible desde jQuery 1.2.6, en algún momento de 2008, por lo que esta técnica funciona ahora y cuando se hizo la pregunta original.fuente
Utilice la
offset()
función dejQuery
. Aquí estaría:fuente