我正在尝试创建一个基于portlet的页面,其中portlet具有不同的大小。
问题是解决“2.2 portlet”左侧的“死区”,“1.1 portlet”或“2.1 portlet”是否适合该空间,但是有可能同谋以及如何?
页面的宽度是固定的,应保持不变,http://www.jsfiddle.net/XF2pV/
如果jQuery UI无法帮助我,我会对其他框架的建议持开放态度。
答案 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。
答案 2 :(得分:0)
有一个插件,ShapeShift可以很好地完成工作