Pra*_*een 14
我想这就是你要找的东西
handle:哪些句柄可用于调整大小.
例: $( ".selector" ).resizable({ handles: "n, e, s, w" });
HTML:
<div class="parent">
<div class="child"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.parent {
position: relative;
width: 800px;
height: 500px;
background: #000;
}
.child {
position: absolute;
right: 0;
top: 0;
width: 200px;
height: 100%;
background: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
JS:
$('.child').resizable({
handles: 'n,w,s,e',
minWidth: 200,
maxWidth: 400
});
Run Code Online (Sandbox Code Playgroud)
检查这个JSFiddle
编辑:解决了CSS问题,更新了小提琴
使用vanilla jQuery可以很容易地实现这一点.我建议使用更高效的标记布局,否则您将遇到一些相对位置/大小问题.
我会用一个容器和两个孩子.在其中一个孩子(第二个或右侧)将包含一个透明但宽度较小的手柄.对于jQuery,您只需将鼠标按下事件附加到该句柄,并相应地调整其他子项的大小.这大致是看起来如何.
<div id="container">
<!-- Left side -->
<div id="left"> This is the left side's content! </div>
<!-- Right side -->
<div id="right">
<!-- Actual resize handle -->
<div id="handle"></div> This is the right side's content!
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
var isResizing = false,
lastDownX = 0;
$(function () {
var container = $('#container'),
left = $('#left'),
right = $('#right'),
handle = $('#handle');
handle.on('mousedown', function (e) {
isResizing = true;
lastDownX = e.clientX;
});
$(document).on('mousemove', function (e) {
// we don't want to do anything if we aren't resizing.
if (!isResizing)
return;
var offsetRight = container.width() - (e.clientX - container.offset().left);
left.css('right', offsetRight);
right.css('width', offsetRight);
}).on('mouseup', function (e) {
// stop resizing
isResizing = false;
});
});
Run Code Online (Sandbox Code Playgroud)