2011-01-06 9 views
5

Soy un novato en jQuery. ¿Podría alguien responder esto por favor?jQuery .offset configuración y valor

Sé que estableceré layer1 en la posición de layer2 con la siguiente línea de código.

$("#layer1").offset($("#layer2").offset()); 

¿Cómo puedo simplemente establecer el valor de y? No estoy seguro de eso.

Gracias

Respuesta

0

sólo tiene que utilizar/establecer la propiedad css superior

$("#layer1").css("top",$("#layer2").css("top")); 
0
$("#layer1").css({ 
    'top': $("#layer2").offset().top 
}); 

EDITAR .top/.left parece ser definidores.
EDITv2 el desplazamiento se puede establecer, pero se debe realizar a través del método .offset().

7

La documentación jQuery para .offest() lee:

.offset() devuelve un objeto que contiene las propiedades de la parte superior ya la izquierda.

Sabiendo esto, se puede lograr lo siguiente:

var offset = $("#layer2").offset(); 
$("#layer1").css({ 
    'top' : offset.top, 
    'left': offset.left 
}); 

O bien, puede hacerlo de forma individual, por su exigencia.

$("#layer1").css('top', offset.top); // or... 
$("#layer1").css('left', offset.left); 

Por último, dado que solo necesita un valor único (arriba), el desplazamiento es excesivo; es más caro de lo que necesitas Utilice el siguiente fragmento optimizado en su lugar.

var top = $('#layer2').css('top'); 
$('#layer1').css('top', top); 
0

Uso offset.top y offset.left - esos son los X e Y .. desplazamiento() devuelve en sí mismo tanto x como y (o parte superior e izquierda)

+0

Gracias por la info! – Denise

+0

Por motivos de confusión, se debe aclarar que ** arriba ** es ** Y ** y ** izquierda ** es ** X **. No los menciona, solo quería agregar claridad. –

Cuestiones relacionadas