2011-01-06 19 views
5

Sono un novizio di jQuery. Qualcuno potrebbe rispondere per favore?jQuery .offset impostazione valore y

So che imposterò layer1 alla posizione di layer2 con la seguente riga di codice.

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

Come posso semplicemente impostare il valore y? Non ne sono sicuro.

Grazie

risposta

0

Basta usare/impostare la css top proprietà

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

EDIT .top/.left sembra essere setter.
EDITv2 l'offset può essere impostato ma deve essere eseguito tramite il metodo .offset().

7

La documentazione jQuery per .offest() legge:

.Offset() restituisce un oggetto che contiene le proprietà di alto ea sinistra.

Sapendo questo, è possibile eseguire le seguenti operazioni:

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

In alternativa, è possibile impostare individualmente, secondo il vostro requisito.

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

Infine, poiché è necessario un solo valore (in alto), l'offset è eccessivo; è più costoso del necessario. Utilizza invece il seguente snippet ottimizzato.

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

Secondo http://api.jquery.com/offset/

$("p:last").offset({ top: 10, left: 30 }); 

può essere utilizzato. In quanto tale dovresti essere in grado di rimuovere solo ciò che vuoi non volere.

0

Usa offset.top e offset.left - questi sono i x e y DISASSATO .. ​​() in sé dei rendimenti sia in X e Y (o superiore e di sinistra)

+0

Grazie per le informazioni! – Denise

+0

Per motivi di confusione, è necessario chiarire che ** top ** è ** Y ** e ** lasciato ** è ** X **. Non li menzioni rispettivamente, volevo solo aggiungere chiarezza. –

Problemi correlati