私が見つけた唯一の解決策は、現在の値で最大および最小の高さまたは幅を設定することです。
例:
foo.resizable({
maxHeight: foo.height(),
minHeight: foo.height()
});
しかし、特に要素の高さをプログラムで変更する必要がある場合、これは本当にreallyいです。
次のように、サイズ変更 handles
オプション を左右(または東/西)にのみ表示するように設定できます。
foo.resizable({
handles: 'e, w'
});
ポスターは主に水平方向のみのサイズ変更を要求していましたが、質問は垂直方向も要求しています。
垂直の場合には特別な問題があります:ブラウザーウィンドウのサイズが変更された場合でも保持したい相対的な幅(たとえば50%)を設定した可能性があります。ただし、最初に要素のサイズを変更すると、jQuery UIはpxで絶対幅を設定し、相対幅は失われます。
このユースケースで機能する次のコードが見つかった場合:
$("#resizable").resizable({
handles: 's',
stop: function(event, ui) {
$(this).css("width", '');
}
});
http://jsfiddle.net/cburgmer/wExtX/ および jQuery UIのサイズ変更可能:東ハンドルのみを使用する場合の自動高さ
非常に簡単な解決策:
$( ".selector" ).resizable({ grid: [1, 10000] }); // horizontal
$( ".selector" ).resizable({ grid: [10000, 1] }); // vertical
これはdraggable()でも同様に機能します。例: http://jsfiddle.net/xCepm/
解決策は、不要なディメンションの変更をキャンセルするようにサイズ変更可能を構成することです。
以下は、垂直方向にのみサイズ変更可能な例です。
foo.resizable({
resize: function(event, ui) {
ui.size.width = ui.originalSize.width;
}
});
ブラウザのサイズ変更時に幅のサイズ変更を許可したかったのですが、ユーザーが要素のサイズを変更したときではなく、これはうまくいきました:
foo.first().resizable({
resize: function(event, ui) {
ui.element.css('width','auto');
},
});
私にとっては、ハンドルとresize
ハンドラーの両方を備えたソリューションは正常に機能したため、ユーザーはハンドルを見ることができますが、水平方向にのみサイズ変更できます。右下のハンドラーがなければユーザーは気付かないかもしれません要素のサイズを変更できます。
_ui.size.height = ui.originalSize.height;
_を使用する場合、正しく動作しない要素が変更された場合、初期状態からのサイズになります。
_foo.resizable({
// Handles left right and bottom right corner
handles: 'e, w, se',
// Remove height style
resize: function(event, ui) {
$(this).css("height", '');
}
});
_
パフォーマンスを向上させるために、$(this)
を削除できます。
_var foo = jQuery('#foo');
foo.resizable({
// Handles left right and bottom right corner
handles: 'e, w, se',
// Remove height style
resize: function(event, ui) {
foo.css("height", '');
}
});
_
Successfully working div position Vertically and horizontally
-------------------------------------------------------------
<head>
<style>
.resizable {
height: 100px;
width: 500px;
background: #09C;
}
.resizable-x {
height: 100px;
width: 500px;
background: #F60;
}
</style>
<script>
$(function() {
$( ".resizable" ).resizable({
grid: [10000, 1]
});
$( ".resizable-x " ).resizable({
grid: [1, 10000]
});
$( ".resizable" ).draggable();
});
});
</script>`enter code here`
</head>
<body>
<div class="resizable"></div>
<div class="resizable-x"></div>
</body>