Jquery UI,带有可排序portlet的“死区”

时间:2011-01-24 09:00:19

标签: jquery jquery-ui

我正在尝试创建一个基于portlet的页面,其中portlet具有不同的大小。

问题是解决“2.2 portlet”左侧的“死区”,“1.1 portlet”或“2.1 portlet”是否适合该空间,但是有可能同谋以及如何?

页面的宽度是固定的,应保持不变,http://www.jsfiddle.net/XF2pV/

如果jQuery UI无法帮助我,我会对其他框架的建议持开放态度。

3 个答案:

答案 0 :(得分:1)

不幸的是,该方法存在缺陷。使用jquery sortable和不同大小的项目的网格布局将导致此行为。原因是在html和css中,您正在创建一个左侧浮动的项目列表,当允许将其包装在固定宽度的容器中时,将留下实际上无法使用的间隙。

您的容器宽度是固定的,并且您的盒子是固定大小意味着很容易尝试另一种定位方式。尝试使用仅使用css和html的绝对定位来完全按照您最初的需要填充所有空间,然后尝试使用javascript来移动框。

然而,我怀疑'可排序'jQuery库在使用绝对定位时会起作用(我必须承认我从未使用过它)。绝对定位时,很可能会让项目“移开”你把东西拖到他们身上会有问题。您可能需要定义一组隐藏的div作为您的“网格” - 或者您可以删除的东西,以及另一组包含您想要移动的可见内容的div。 jQuery draggable和dropable api会有所帮助,但你需要做更多的编码才能确保你移动的项目“快速”到位,当你丢弃它们时让其他人移开。

这看起来很相似https://stackoverflow.com/questions/2133677/jquery-sortable-divs-replicate-bbc-home-page也许您可以查看BBC主页的源代码。 http://bbc.co.uk

答案 1 :(得分:0)

我遇到了这个问题,试图为自己解决这个问题。

我正在尝试解决方法的第一次迭代:使用父容器作为droppable。

请参阅https://stackoverflow.com/a/11352922/704827

答案 2 :(得分:0)

有一个插件,ShapeShift可以很好地完成工作