创建一个像BBC一样的可拖动的可排序效果

时间:2010-07-26 18:38:29

标签: jquery-ui draggable jquery-ui-sortable

我想创建像http://www.bbc.co.uk/那样的可拖动和可排序的效果。

为此,我使用了Jquery UI并获得了相同的效果。

但是有了复杂性,如果你在BBC的网站上看到效果,当你选择一个分区时,会出现一个阴影,下方有一条虚线,而且盒子之间的移动与我得到的差别很大。

当使用Jquery UI时,我浮动<li>并将它们并排显示在彼此之间,但是当我移动框时,移动框插入框之间。

到目前为止,这是我的编码。但它不是BBC的那个

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <link type="text/css" href="themes/base/jquery.ui.all.css" rel="stylesheet" />
    <script src="js/lib/jquery.js"></script>
    <script src="js/lib/ui.js"></script>
    <script src="js/lib/widget.js"></script>
    <script src="js/lib/utilities/mouse.js"></script>
    <script src="js/lib/interactions/draggable.js"></script>
    <script src="js/lib/interactions/sortable.js"></script>    
    <style>
        * { margin:0;padding:0; }
        body {
            background:url(themes/default/images/background.gif);
            font-family:Verdana, Geneva, sans-serif;
            font-size:12px;
        }
        #wrapper {
            width:980px;
            margin: 0 auto;
            border:1px #F00 solid;
        }
        .sublayout {
            width:300px;
            height:300px;
            background:#aeadad;
            border:1px #2495f5 solid;
            float:left;
            margin:1em;
            -moz-box-shadow: 0 0 20px black;
            -webkit-box-shadow: 0 0 20px black;
            box-shadow: 0 0 20px black;         
        }
    </style>
    <script type="text/javascript">
    $(function() {
        $("#sortable").sortable({
            revert: true
        });
        $("#draggable").draggable({
            connectToSortable: '#sortable',
            helper: 'clone',
            revert: 'invalid'
        });
        $("ul, li").disableSelection();
    });
    </script>    
</head>

<body>
    <div id="wrapper">       
        <ul id="sortable">
            <li class="ui-state-default sublayout">Item 1</li>
            <li class="ui-state-default sublayout">Item 2</li>
            <li class="ui-state-default sublayout">Item 3</li>
            <li class="ui-state-default sublayout">Item 4</li>
            <li class="ui-state-default sublayout">Item 5</li>
        </ul>    
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我认为你需要3个列表(列)来创建这种效果。 看一下这个演示:http://jqueryui.com/demos/sortable/#portlets