![]() |
1
7
@阿莱姆:我不相信他是这么说的。我认为问题在于iframe,而不是可拖动和可调整大小的组合。 @regex:我有同样的问题,它也通过使用原型工具箱的先前实现来实现。 我的实现使用一个iframe作为画布,用于放置draggables。你能看到错误的方式是移动你的鼠标太快,以至于光标离开可拖动分区的边缘。分区停止移动,你的鼠标继续移动;通过移动你的鼠标回到分区的表面,它再次拿起分区,并开始移动,即使你已经释放了鼠标的点击。 我怀疑iframe事件会以某种方式干扰jquery事件。 我的解决方案是在iframe和draggables/resizables之间放置一个透明的DIV标记。 这样,iframe就不会看到鼠标的移动,因此也不会受到干扰。 编辑:参见代码示例: http://dpaste.com/hold/17009/ 韦斯 更新!我重新讨论了这个问题,iframefix在所有的Draggables浏览器中似乎都能很好地工作,但是可调整大小的文件没有相同的修复。 我使用此代码手动添加了一个mask div:
和HTML:
spacer.gif是一个1x1像素透明的gif。 这解决了IE7和IE8的问题。IE6在z-index上有问题,似乎无法确定DIV应该在iframe和可调整大小的DIV之间。我放弃了IE6。 韦斯 |
![]() |
2
3
遇到同样的情况 resizable/redraggable problem 最近。
|
![]() |
3
1
我相信您也可以通过将“iframefix”参数添加到可拖动的初始化中来解决这个问题,如文档中“选项”下所述。 http://jqueryui.com/demos/draggable/ |
![]() |
4
1
不幸的是,iframefix存在一个问题,即一旦可拖动,就很难释放透明的div。我以前写过另一个更强大的版本,但不幸的是我丢失了代码…如果我能解决这个问题,我将重新发布我的代码。 编辑:好的,我制定了一个手册,但更好的方法是……至少在我的情况下 当单击包含DIV时(鼠标向下),仍然在iframe容器的顶部创建一个透明的DIV。这个透明的DIV放置在顶部-90%,这应该使它超过iframe(取决于您的样式,它可能更像顶部-100%;)。在transparent div的onmouseupevent上,添加代码以删除透明div。 JS-函数 函数coveriframes()。{ $(“.normalWindow”).append(“”); }
用于透明分区的CSS样式 盖{ 宽度:100%; 身高:100%; 顶部:-90%; 职位:相对; } 示例HTML |
![]() |
5
1
|
![]() |
6
1
在使用了类似于@wes建议的解决方案之后,我发现了一个更简单的解决方案,不需要JavaScript代码。只需将以下内容添加到您的CSS中:
一旦用户开始调整大小,jquery就会添加.ui resizable resizing类,并添加一个覆盖。请注意,在调整大小的对象上需要“position:relative”。 |
![]() |
mlsmet · 无法在Android手机上水平滚动表格 3 年前 |