フローティングボックスをつくるときに覚えておくと良いJavascriptのTips
要素のスクロールを制御するうえで押さえておきたいのは次の2点:
- FixedPoint:スクロールを開始する位置
- AbsolutePoint:スクロールを停止する位置
ブラウザ上のスクロール位置「window.scrollTop()」が、上記1を超えたらフローティング要素のpositionを「fixed」に、2を超えたら、「absolute」にする。
1の位置はフローティング要素のHTML文書上のオフセット「#sidebar.offset().top」で取得できる。2の位置は、1に対してメイン要素の長さ「#main.outerHeight()」を足し、かつフローティング要素の高さ「#sidebar.outerHeight()」を引けば算出できる。
なお、ブラウザの画面幅「windows.height()」がフローティング要素の高さを下回ったなら、フローティング動作を解除すると丁寧。