ウィンドウのスクロールと一緒にスクロールし、フッターに到達すると停止するアニメーションサイドバーを使用しています。
jQuery(document).ready(function() {
var jQuerysidebar = jQuery("#sb"),
jQuerywindow = jQuery(window),
offset = jQuerysidebar.offset(),
sbh = jQuerysidebar.height(),
footer = jQuery("#footer").offset().top;
jQuerywindow.scroll(function() {
if ( jQuerywindow.scrollTop() > offset.top ) {
if (jQuerywindow.scrollTop() + jQuerysidebar.height() < footer) {
jQuerysidebar.stop().animate({
marginTop: jQuerywindow.scrollTop() - 8
});
}
} else{
jQuerysidebar.stop().animate({
marginTop: 0
});
}
});
});
サイドバーの高さがウィンドウの高さよりも大きいため、サイドバーの下部に簡単にアクセスできません。下にスクロールすると、サイドバーも下がります...
サイドバーが最後に到達した後にのみスクロールを開始したいと思います...これまでのところ、この結果は部分的にしか得られませんでした:
if ( jQuerywindow.scrollTop() > jQuerysidebar.height() ) {
明らかなように、その後 scrollTop の値がサイドバーの高さよりも大きくなると、再びスクロールし続けます...したがって、このコードは一度だけ機能します:D
最後に到達した後にのみサイドバーをスクロールさせるより良い方法はありますか?
他の解決策も試しましたが、新しい試みごとに別の問題が発生しました。(私はjqueryを使用するのが初めてです...)
ご協力いただきありがとうございます:)