这项工作是对我之前未回答的问题的回应:Resizable div doesn't stay within containment parameter
由于我的resizable
div (称为pocket)不是我希望将其包含在其中的容器的直接子级,因此我在应将resize
其包含在容器中的方法中提供了一个回调。
在这里小提琴:http: //jsfiddle.net/dKuER/12/
我的问题
resizable
当您将div 向左重新调整大小(这会影响其left
位置)超出网格边界时,它并不总是尊重我在回调函数中的逻辑。当您向左拖动时,您会注意到一个闪烁的动作,其中 div 将在其硬编码left
位置和left
鼠标确定的位置之间切换。
根据您停止拖动的时间,left
div 的位置可能位于硬编码位置或鼠标停止拖动的位置。
如何确保始终遵守回调函数的逻辑?
// Relevant Code
// No blinking action when dealing with the width
//Re-sizing to the right works
if ( (pocketLeft + currentWidth) > (gridLeft + gridWidth) ) {
var deltaWidth = (gridLeft + gridWidth) - (pocketLeft + originalWidth);
ui.size.width = originalWidth -deltaWidth;
}
// This should force the position if the div is re-sized
// past the grid's left boundary
if (pocketLeft < gridLeft) {
ui.position.left = -120;
}