2009-11-27 15 views

risposta

5

Potrebbe essere che jQuery è eccessivo e impostazione margine-sinistra: -10px farà il trucco.

È possibile ottenere offset() relativa di un elemento al documento: http://docs.jquery.com/CSS/offset

Che darei la sinistra, in alto, ecc.

Quindi potrebbe essere necessario posizionare l'elemento utilizzando il css in questo modo.

subMenu.css({ 
      position: 'absolute', 
      zIndex: 5000, 
      left: left, 
      top: top 
     }); 
6

Assumendo il vostro elemento è l'id 'MyElement':

$('#myElement').css(
{ 
    'position': 'relative', 
    'left': '-10px' 
}); 
8

Ecco un rapido esempio utilizzando jQuery:

$("#el").css({ 
    left: $("#el").position().left - 10 + "px" 
}); 

Nota: l'elemento che si desidera spostare deve essere posizionato assolutamente o relativamente.

+4

o $ ("# el") css ('left', '- = 10px') –

+0

Questo non funziona se questo comando è direttamente dopo un element.position JQuery UI (. {...}) chiama, sfortunatamente. – HoldOffHunger

0

Poiché nessuna delle altre risposte sono vere soluzioni jQuery, farò risorgere questo vecchio problema.

Questa soluzione può spostare tutti gli elementi selezionati da un valore relativo:

$('.selected').each(function() { 
    $(this).css({ left: $(this).position().left - 10 }); 
}); 
2

Come di 1,6 è possibile utilizzare valori relativi a css() quindi si può usare questo:

$('#myElement).css("left", "+=15"); 

Fintanto poiché l'elemento ha già un valore definito per left ed è posizionato in modo assoluto.

Rif: http://api.jquery.com/css/