2010-10-04 9 views
5

Ho un sito su cui sto lavorando che ha alcune immersioni posizionate in modo assoluto che ho bisogno di ridimensionare cliccando, queste riempiranno il contenitore in cui si trovano le div. La domanda è come ottenerli per passare alla posizione originale (in alto a sinistra), che è diversa per ciascuno.jQuery che ritorna alla posizione originale

$(".work-item .toggle").toggle(function() { 
     $(this).parent().animate({ height: '430', width: '930', top: '0', left: '0' }, 750); 
    }, 
    function() { 
     var pos   = $(this).parent(); 
     var position = pos.position();  

     $(this).parent().animate({ height: '150', width: '200', top: position.top, left: position.left }, 750); 
    }); 

Ho provato quanto sopra ma sta ottenendo la nuova posizione non l'originale.

Grazie in anticipo.

PVS

risposta

12

È possibile memorizzare la posizione quando la pagina viene caricata utilizzando $.data() e utilizzarla in seguito, in questo modo:

$(".work-item .toggle").each(function() { 
    $.data(this, 'position', $(this).parent().position()); 
}).toggle(function() { 
    $(this).parent().animate({ height: '430', width: '930', top: '0', left: '0' }, 750); 
}, function() { 
    var position = $.data(this, 'position'); 
    $(this).parent().animate({ height: '150', width: '200', top: position.top, left: position.left }, 750); 
}); 

Questo memorizza la .position() per i genitori di ogni elemento poco prima si associa, quindi lo usa quando si riattiva dopo.

+0

Grazie Nick! Funziona a meraviglia. –

Problemi correlati