容器在可拖动物体向左移动或向上移动时的滚动

3
有没有一种好的方法可以使容器div在可拖动对象拖出其边界时向左和向上扩展?
当您向右或向下拖动时,容器div会正确地延伸,并且滚动条会根据需要出现。但是向左或向上移动意味着可拖动项具有负的上/左位置,因此容器不会扩展。
这里有一个演示现有拖动行为的fiddle:http://jsfiddle.net/NPC42/Un23w/1/,但这也可以在官方的jQueryUI演示中看到(http://jqueryui.com/demos/draggable/#default)。
我希望能够向上/向左扩展 :)
一种蛮力方法是:
  1. 将容器div上所有对象的位置重置,以便不需要负的上/左位置(包括正在拖动的对象)。
  2. 更改滚动位置,使其看起来仍然在其原位。
但是对于容器中的许多对象,这可能会导致很多闪烁,甚至减慢速度,因此我真的不想走这条路。欢迎任何建议!
1个回答

1
问题在于每个 HTML 元素都有一个绝对的(0,0)起始坐标在左上角。当你向那个方向拖动时,可拖动元素的坐标变为负数。然而滚动条不能变成负数,它们的大小只能朝正方向增长。
我可以想象一个自定义滚动条窗口小部件,当你拖到(0,0)以下时可以向负方向调整。同时尝试在另一个容器内放置一个容器,让内部容器移动,这样里面的所有对象就不必分别移动。我不知道是否存在这样的容器,因为有负的滚动偏移值可能会有些奇怪。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接