ユーザーのブラウザー ウィンドウが約 1024 ピクセル未満の場合 (サイトには 1024 ピクセル以上の水平スクロールがありません)、メイン コンテンツをさらに表示するために右にスクロールすると、それを実現する方法を見つけようとしています。左の固定位置メニューによってオーバーラップ/乱雑になりません。
私が直面している基本的な問題を再現する JS フィドルを作成しました: http://jsfiddle.net/YE7ZZ/1/
CSS
#wrap {
width:100%;
background-image:url('../images/Imagine/bg_image44.png');
background-attachment:fixed;
}
#top {
}
#left {
position:fixed;
border:1px solid red;
background:pink;
width:250px;
}
#positioner {
margin-left:250px;
width:auto;
}
#content {
border:1px solid green;
width:700px;
margin:auto;
background:grey;
}
HTML
<div id="wrap">
<div id="top"></div>
<div id="left">menu item~~~~~<br /><br /><br />menu item~~~~~<br /><br /><br />menu item~~~~~<br /><br /><br />menu item~~~~~<br /><br /><br />menu item~~~~~<br /><br /><br />menu item~~~~~<br /><br /><br /></div>
<div id="positioner">
<div id="content">asdf content that should be lower-resolution browser friendly and not be overlapped by the menu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
asdf content that should be lower-resolution browser friendly and not be overlapped by the menu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
asdf content that should be lower-resolution browser friendly and not be overlapped by the menu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
asdf content that should be lower-resolution browser friendly and not be overlapped by the menu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
</div>
</div>
過去 6 週間に 3 回ほどこの問題を解決しようとしましたが、解決策を見つけることができませんでした。
お時間をいただきありがとうございます。
編集-私の理想的な解決策は、コンテンツ部分に水平スクロールバーを表示して、コンテンツ自体をスクロールできるようにすることです。または 2) 視聴可能なコンテンツの量を切り取る。または 3) 左メニューのサイズを小さくする
解決済み: @Gaby aka G. Petrioli に感謝します
私はこのJavaScriptソリューションを使用しました:
$(document).ready(function(){
var lastLeft = -1,
menu = $('.left_, .top_');
$(window).on('scroll resize', function(){
var left = $(window).scrollLeft();
if (left >= 0 && left!==lastLeft){
lastLeft = left;
menu.css('left',-left+'px');
}
});
});
そして、彼が概説したように CSS を変更し、私のライブ バージョンでは、一部のトップ メニュー要素の配置を固定から絶対に変更する必要がありました。本当にありがとうございました!