クライアントのサイトをフレームセットから div に変換しています。クライアントが持つ機能の 1 つは、ユーザーが必要とするスペースに応じてサイズを変更できるサイドバーです。フレームを使用すると、このサイドバーのサイズ変更が組み込まれています。ただし、jQuery でこの機能をエミュレートするのに苦労しています。
これを行うために jQuery UI を使用したくはありません。UI スイートが提供するすべての追加機能は必要ありません。これを処理するために数行のコードを記述するだけです。
水平面でのみサイズ変更する必要があり、垂直方向の寸法は固定されています。
現在、私は(一種の)機能するソリューションを持っています。サイドバー div はサイズ変更できますが、ユーザーがサイズ変更可能な div をクリックし、マウスをドラッグしてから、div を再度クリックした場合に限ります (mousemove イベントを削除するため)。
私が望むエクスペリエンスは次のとおりです。ユーザーはサイズ変更可能な div の上にカーソルを置き、マウス ボタンを押し下げてから、div をドラッグして大きく/小さくし、ボタンを放します。
私が抱えている問題は次のとおりです。ユーザーがサイズ変更可能な div をクリックし、それをドラッグして小さく/大きくしようとすると、マウスが「いいえ」アイコンになり、透明なバージョンの div があります。マウスでドラッグします。
おそらく、これは私のコードをチェックアウトすることでよりよく説明されます:.
$(document).ready(function() {
var i = 0;
$('#dragbar').mousedown(function(){
$('#mousestatus').html("mousedown" + i++);
$(document).mousemove(function(e){
$('#position').html(e.pageX +', '+ e.pageY);
$('#sidebar').css("width",e.pageX+2);
})
console.log("leaving mouseDown");
});
$(document).mouseup(function(){
$('#clickevent').html('in another mouseUp event' + i++);
$(document).unbind('mousemove');
});
});
および HTML:
<div id="header">
header
<span id="mousestatus"></span>
<span id="clickevent"></span>
</div>
<div id="sidebar">
<span id="position"></span>
<div id="dragbar">
</div>
sidebar
</div>
<div id="main">
main
</div>
<div id="footer">
footer
</div>
基本的なレイアウトが機能している一時的な Web ページを次に示します。
http://pastehtml.com/view/1crj2lj.html
茶色のバーを使用して「サイドバー」というラベルの付いたもののサイズを変更しようとすると、問題が発生することがあります。