そのため、ナビゲーション項目のスタック (行) を含む垂直ナビゲーション メニューを作成しようとしています。これらの行のいずれかが選択されたときに、メニューが上 (および下) からスライドアウトし、このサブメニューの上部がクリックされた行の下部に達したときに必要です。これらのサブメニューには、サブメニューの下部が関連するナビゲーション項目の下部と等しい開始位置も必要です。これにより、下にアニメーション化するとすぐに表示されます。
このポジショニング、停止点と開始点は、このフィドル -> http://jsfiddle.net/pGfCX/57/で確認できます。始点と終点だけ注意してください。フィドルの残りの部分は、position:relative の性質により壊れています。
z-index は後続のナビゲーション項目のプッシュを修正できると思いました (リンクされたばかりのフィドルでわかるように)...しかし、それはうまくいかないようです。position:absolute のみが適切なオーバーラップを有効にするように見えます (つまり、サブメニューはその上の要素の下に隠れ、その下の要素を覆います)。残念ながら、これにも欠点があります。このフィドルでわかるように: http://jsfiddle.net/pGfCX/60/。毎回同じクラスを使用しているため、開始位置と終了位置が常に同じであることに気付くでしょう。すべてのサブメニューを独自の一意の ID として具体的に配置することはできますが、それは非常に非効率的であり、維持するのが困難です。
基本的に、2 つのアプローチを組み合わせる必要があります...開始/終了位置の相対位置と、適切なオーバーラップを可能にする絶対位置。
うまくいけば、これは理にかなっています... 私は本当に助けが必要です. 私は2つのアプローチに固執しており、どちらも機能していません。イライラします。
これが私の現在のjQueryコードです:
$('.row').click(function() {
// make all siblings AFTER row clicked get this class to reduce z-index and allow the menu to display above these rows (while still remaining below the rows above)
$(this).nextAll().addClass('rowZ');
$(this).next('.menu').show()
$(this).next('.menu').animate({'top':'0'});
});
// when menu is out, the row clicked is the header row, upon clicking this, the related menu (and by default, all subsequent menus within) animate back up and hide
$('.rowHead').click(function() {
$(this).next('.menu').animate({'top':'-100%'});
$(this).next('.menu').hide();
});
どんな助けでも大歓迎です。ありがとう!
EDIT*ナビゲーション アイテム内の新しいアプローチ... メニューで、ナビゲーション アイテムに対して絶対位置を指定し、相対的に配置できるようにします。ただし、z-index はオフのようです (つまり、ナビゲーション アイテム (親) の上にアニメーション化されていますが、z-index は別の方法で提案します: