下向きではなく上向きにアニメートするトグルを作成する必要があります。つまり、「通常の」トグルの逆です。おそらくもっと簡単なのは、通常のslideToggleなどのように下にスライドするのではなく、メニュー項目(メニュー)の上にトグルを上にスライドして表示する必要があることです。私はこれでほぼそこにいます:
var opened = false;
$("#coltab li").click(function(){
if(opened){
$(this).children('ul').animate({"top": "+=300px"});
} else {
$(this).children('ul').animate({"top": "-=300px"});
}
$(this).children('ul').children().slideToggle('slow');
$(this).children('ul').toggle();
opened = opened ? false : true;
});
ただし、アイテムを「トグル」すると、別のアイテムが300px下がり、2番目のアイテム(下にスライド)が300px下がり、300px上にスライド(上がり)しません。私が達成したいことの良い例(サイトが嫌い)は、http://market.weogeo.com/#/homeと下部の「タブ」です。
私のHTMLコードは使用しています
<ul id="#coltab">
<li>Item 1
<ul>
<li>This bit needs to toggle up</li>
</ul>
</li>
<li>Item 2
<ul>
<li>This bit needs to toggle up</li>
</ul>
</li>
etc ...
</ul>
CSS側
ul#coltab { position: relative' blah; blah; }
と
ul#coltab ul { display: none; position: absolute; blah; blah; }
何か案は?
「クリックされた」トグルを開く前に、各「クリック」が前のトグルを閉じたと便利です。