移動したときにスライドインおよびスライドアウトするセクションを持つページレイアウトを作成しようとしています。各セクションは画面全体に表示され(幅/高さ100%)、パーセンテージベースの値で絶対的に配置されます。
添付のサンプルには、次のように配置された4つのセクションがあります。
[a] [b] [c] [d]
ここで、[a]は0 0、[b]は0 100%、[c]は100%100%、[d]は200%100%です。
ここで、ナビゲーションを実現するために、すべてのセクションを100%x 100%の絶対位置に配置され、オーバーフローした非表示のコンテナーに配置しました。セクションに移動すると、コンテナの「上」と「左」の値がセクションのオフセットの負の値にアニメーション化されます。たとえば、[d]が選択されている場合、コンテナは-200%-100%にアニメーション化されます。
奇妙な行動がたくさんあります!0%オフセットにナビゲートする場合(左に移動または上に移動)、遷移は正常に機能します。ただし、他の組み合わせ(つまり、負のオフセット)は、一見非論理的な(まだ一貫した)癖になります。
自分の目で確かめてください:http://www.doronassayas.com/ypsite
要約は次のとおりです。
- [c]および[d]から[a]または[b]のいずれかが正常に機能します。
- [a]から[b]および[a]から[d]:最後にジャンプし、最初に戻ってアニメーションを開始します。
- [a]と[b]から[c]は最も奇妙です-遷移が始まる前に、ボディ全体(または他の高レベルの要素?)がCSSでは追跡できない視覚的なオフセットにポップします(Firebugや他の開発では見えません)ツール)。したがって、CSS値が[c]にあるはずであることを明確に示していても、[c]に到達するのではなく、(視覚的に)[d]に到達します。Firebug階層をクリックするなどのランダムな操作を行うと、ビューが正しい場所にリセットされます。WTF?
これをFirefox4、Chrome 10、Safari 5でテストしたところ、jQuery.animate()を使用する場合でも、Louis Remiの非常にクールなjQuery.transitionプラグインを使用する場合でも、すべてのブラウザーで同じ動作が発生します。 animate()が呼び出されたときに新しいオフセット値を使用します。
奇妙さの一貫性は私に興味をそそられます。何か案は?
どんな助けでも大歓迎です。