左側に固定サイドバー、右側の列にページ コンテンツがある 2 列のレイアウトがあります。フッターも持っています。固定サイドバーを、ページ コンテンツ div の最後の座標まで右にスクロールしたい。
ただし、サイドバーの高さがページ コンテンツの高さよりも大きい場合は、新しい高さをページ コンテンツ div に自動的に割り当てる必要があります。このコードは最初のケース (コンテンツがサイドバーより高い) で機能しますが、2 番目のケースはページをもう一度リロードした場合にのみ機能します (たとえば、別のページからこの種のページに移動した場合、スクリプトは new を割り当てません)。高さですが、ページをリロードするとそうなります)
コードは次のとおりです。
$(window).load(function(){
var windw = this;
var contentHeight = $('#content').height(); // fetch Сontent div height
var sideHeight = $('.sidebar-nav-fixed').height(); // fetch sidebar div height
$.fn.followTo = function ( pos ) {
var $this = this,
$window = $(windw);
$window.scroll(function(e){
if ($window.scrollTop() >= pos) {
$this.css({
position: 'absolute',
top: pos
});
} else {
$this.css({
position: 'fixed',
top: 100
});
}
});
};
if (sideHeight > contentHeight) {
$('#content').css ({
height: contentHeight + (sideHeight - contentHeight)
}),
contentHeight = $('#content').height() // Assign a new height to page content div
}
$('.sidebar-nav-fixed').followTo(contentHeight - sideHeight);
});
何かアイデアがあれば本当に嬉しいですありがとう!