スクロールバーが下に移動してコンテンツを表示する場合でも、ウィンドウの右側に凍っているように振る舞いたいサイドバーがあります。私はそれを完全に固定して、サイドバーがjQueryを使ってページをスクロールダウンすることでそれを処理しました。現在のところ、これは私がこれを扱う方法です。jQueryアニメーションをページの端からスクロールする
<script type="text/javascript">
$(window).scroll(function() {
$('#sidebarPage1').animate(
{ top: $(window).scrollTop() + 'px' },
{ queue: false, duration: 500, easing: 'easeInOutSine' }
);
});
</script>
彼らはバーが終わる一番下に完全にスクロールすると、ユーザーは小さなビューポートを持っている場合、サイドバーの上部は、およそ150ピクセル、上からによって相殺されるので、私は私のページの100%幅のヘッダーとフッターを持っています私のフッタの下に行くか、それは画面から完全に離れた本当に小さなビューポートです。
トップに設定する項目を簡単に計算し、ビューポートの下部から約200ピクセルを停止してフッターをクラッシュさせないようにする方法はありますか?ジョエルの答えから
更新:
<script type="text/javascript">
$(window).scroll(function() {
var dynamicSidebarHeight = $('#sidebar').height();
var fixedFooterOffset = 168;
var scrollTo = $(window).scrollTop()
var calculatedMaxTop = $('#footer').offset().top -
dynamicSidebarHeight - fixedFooterOffset;
if (scrollTo > calculatedMaxTop) {
scrollTo = calculatedMaxTop;
}
$('#sidebarPage1')
.animate(
{ top: scrollTo + 'px' },
{ queue: false, duration: 500, easing: 'easeInOutSine' }
);
});
</script>
固定 .Height()関数
は
ありがとうございましたあなたの答えは、私が仕事に必要なほとんどすべてをくれました! Offset()関数は本当にこの全体の質問があったもので、私は必要なものを知っていましたが、そこに到達する方法はわかりませんでした。あなたが後方に持っていた唯一のものは、あなたがトップから値を引く必要があるということです。 –
うん、あなたの権利。私は比較を正しくしましたが、加減算を忘れました。今編集中。 – Joel