【发布时间】:2011-04-18 09:34:16
【问题描述】:
我有一个<div>,它在里面显示了一个图表。有时这个图表对于<div> 来说太大了,所以我需要一种方法让用户用鼠标抓住图表并四处移动。我找到了 jQuery UI Draggable 交互,并认为这就是我所需要的。让基础工作很容易,但是,我很难做到这一点。
理想情况下,只能拖动图表以显示隐藏的部分。例如,如果右侧隐藏了更多图形,则可以将其拖动到左侧并查看隐藏的部分。但是,一旦右侧的所有内容都可见,您就不能再将其拖到左侧。如何使用 jQuery UI Draggable 实现类似的功能?可能吗? jQuery UI 是不是合适的工具?
不太理想,但仍然可以,即使图形足够小以适合父 <div> 并且没有隐藏任何内容,您也可以将图形拖动到任何您想要的位置。我什至无法让它正常工作。发生的事情是我可以选择不指定 containment 选项。然后图形不受约束。现在的问题是图形的<div> 只有一定的大小(父<div> 的100% 宽度和高度)。节点以绝对定位放置在此大小之外。然后当你去拖动图表以显示那些隐藏的节点时,你不能再拖动图表了……因为你现在点击了图表的<div>之外。
我也许可以有一个图形容器<div>,我可以用它来做正确的事情,并在添加或删除节点时动态调整该容器 div 的大小。或者我可以在没有 jQuery UI 的情况下实现这一点,只需使用 mousemove 事件。 . 最好的方法是什么?有没有其他好的图书馆呢?
【问题讨论】:
-
那么,您想拖动图表,就像在 Google 地图中拖动地图一样?这并不是 jQueryUI 的“可拖动”组件的用途——它旨在重新定位整个 DOM 元素,而您想要做的是在“视口”内拖动显示区域的位置。在不知道您的图表是如何工作的情况下,我无法就如何做到这一点提供太多建议。
-
不是它的“意思”,但肯定是它“可以做的”
-
你是对的,@gnarf,并且提供了一个与我正在研究的解决方案非常相似的解决方案(我是 jsfiddle 的新手,所以我花了一些时间。很好的一个@ gnarf!
标签: javascript jquery jquery-ui draggable jquery-ui-draggable