オフセットを使用してスクロール関数に2つの位置を設定するのに問題があります。
ご覧いただけるようにフィドルを作成しました... http://jsfiddle.net/motocomdigital/SGCHt/12/
このフィドルを開くときは、フィドルプレビュービューポートを下のスクリーンショットと同様のサイズに縮小します。
私の問題
条件付きステートメントを使用して、青いタブがどのスクロールポイントにあるかに応じて、青いタブの位置を制御していることがわかります。
黄色の列はタブコンテナを表しておりif else
、青いタブが黄色のコンテナの外に出ないように、ステートメントを使用して下部の位置を制御するのは面倒です。
しかし、これを機能させることはできません。一番下の位置のオフセットが機能しません。
var $tab = $('.tab-button');
$(window).bind("resize.browsersize", function() {
var windowHalf = $(window).height() / 2,
content = $("#content"),
pos = content.offset();
$(window).scroll(function(){
if ($(window).scrollTop() >= pos.top + windowHalf ){
$tab.removeAttr('style').css({ position:'fixed', top:'50%'});
} else if ($(window).scrollTop() >= pos.bottom + windowHalf ){
$tab.removeAttr('style').css({ position:'absolute', bottom:'0px'});
} else {
$tab.removeAttr('style').css({ top: $(window).height() + 'px' });
}
});
}).trigger("resize.browsersize");
</ p>
誰かが私がどこで間違っているのか理解するのを手伝ってくれませんか?
ありがとうジョシュ