cssでpositionをabsoluteに設定した要素の内側にある要素をウィンドウの左上から固定した場所にするにはどうすればいいでしょうか?
上の図で黒い四角がウィンドウです。
div.orange div.pink
という親子になっていて、どちらもpositionがabsoluteになっています。
図の通り、オレンジの親要素はサイズや位置が可変です(アニメーションします)。
ピンクの子要素はウィンドウの左上から、左はウィンドウ全体の20%、上は200pxの位置に固定したいです。
親子ともにpositionがstatic出ないため、子要素にleftやtopの指定では親要素からの相対位置になってしまいます。
またfixedを使うこと、親子階層をやめることは、子要素は親要素の内側にある範囲のみ表示するという条件のためできません。
子要素にfixedを指定するとウィンドウの左上からの座標指定ができますが、overflowをhiddenにしていても親要素の外側が表示されるためつかえません。
アニメーションを JavaScript でする場合は、毎フレームごとに親要素の座標を計算した後にそこからの相対値で子要素が一定の位置にいつづけるよう座標を指定することができると思いますが、親要素のアニメーションはCSSで行うため難しいと思います。
(requestAnimationFrameで毎フレーム親要素のcomputedStyle取り出して子要素の位置を計算すればできる?)
できてもあまりよい解決策じゃないと思います。
なにかスマートな方法はありますでしょうか?
ご回答よろしくお願いします。
--
追記します(1)
今回はChrome(できればFirefoxも)で動けば問題ありません。
IE は動かなくても問題無いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/27 13:47