allora, è un problema che ho affrontato un po' di tempo fa:
Per effettuare l'effetto slide hai due opzioni: o effettui una modifica dell'altezza, da 0 all'altezza voluta, in modo che il div sembri crescere, o dei margini dell'elemento, cioè metti l'elemento in position: absolute; poi modifichi il margin del lato da cui lo vuoi far spuntare, da -(dimensione div) a 0.
Io ti consiglierei il primo, dato che è più semplice da gestire, il secondo richiedei di mettere il div in un altro div cornice con overflow hidden e grandezza fissa. Quello che devi fare è impostare la proprietà height a 0 ed effettuare l'effetto di aumentarla.
Ora, cosa succede facendo così? Il div sembra crescere, certo, ma, dato il funzionamento di HTML come documento verticale, dall'ALTO, il div sembra crescere dall'alto verso il basso.
Per fare il tuo effetto devi modificare 2 proprietà contemporaneamente: altezza e margine superiore:
l'idea è che il div non parta dall'alto, quindi quando l'altezza è 0 il margin-top sarà = all'altezza originale dell'elemento. L'effetto a questo punto sarà di portare l'altezza alla originale e il margin a 0:
codice:
<div id="MyDIV" style="height: 0; margin-top: 100px;">
Questo div deve essere alto 100px; una volta espanso
</div>
a questo punto attivi il morph con la chiamata rapida:
codice:
$('MyDIV').morph('height: 100px; margin-top: 0px;');
Quello che vedrai sarà il div crescere dal basso verso l'alto