容器内部沿着X轴有一个div,即draggable
。我希望用户能够通过点击任意位置并垂直拖动来调整容器大小。为了做到这一点,我将resizable
方法的手柄高度设置为容器高度的100%。调整大小按需要工作,但现在可拖动的交互由于手柄的大小而被阻止。我认为可以在不使用内置可调整大小的方法的情况下完成这种类型的调整大小,但我还没有想出一个优雅的解决方案。可调整大小的句柄阻止可拖动的交互
小提琴:http://jsfiddle.net/LuLd9/
HTML:
<footer>
<div id="queue">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
</footer>
JS:
$('#queue').draggable({
axis: 'x',
scroll: false
});
$('footer').resizable({
handles: 'n'
});
CSS:
#queue {
overflow: visible;
height: 100%;
border: 1px solid red;
z-index: 1;
}
footer {
position: relative;
height: 20%;
top: 60%;
overflow: hidden;
border: 1px solid black;
}
.child {
display: inline-block;
height: 80%;
width: 15%;
border: 1px solid black;
}
.ui-resizable { position: relative;}
.ui-resizable-n { cursor: n-resize; height: 100%; width: 100%; top: -5px; left: 0; }
这与我所想的很接近。我也想添加一个条件,以防止它们同时发射。在水平拖动时高度不应改变,并且在垂直拖动期间'队列'不应该移动。我尝试了类似 ' if((startY - e.pageY)>(startX - e.pageX)){('footer').css('height',fh +(ft - ui.offset.top) +'px'); \t \t \t \t $('footer').css('top',ui.offset.top); “但它并不完全在那里。 – metamlkshk
是的,这有点难 - 所以如果我开始水平拖动,然后(不释放鼠标按钮)垂直移动,你不希望它改变行动?我会考虑如何做到这一点,但我认为这会让我迷惑在一个真正的网站/应用程序上,您可能会更好地使用调整大小的可视句柄(就像这里的问题/答案/评论框上的那些) )。 – SpaceDog