是否有办法使包装工/可拖动集装箱的一部分可拖动



有没有办法只让包装工/可拖动集装箱的一部分可拖动?比方说,只让下面例子中的.chatHeader可拖动,但让整个.chatContainer作为一个整体移动?目前,只有.chatHeader是可拖动的,其他所有内容都保留在后面。我希望所有的事情都能像一个幸福的大家庭一样同时发生。

这是一把小提琴:http://jsfiddle.net/uD5rG/

提前感谢!

    <div class="chartContainer">
        <div class="chartHeader">HEADER</div>
        <div class="chartContent">CONTENT</div>
    </div>

这是我的包装/拖拉配置:

        var container = document.querySelector("#packeryContainer");
        var pckry = new Packery( container, {
            itemSelector: '.chartContainer',
            columnWidth: 350,
            rowHeight: 255,
            gutter: 15
        });
        // make packery items draggable
        var itemElems = pckry.getItemElements();
        // for each item...
        for ( var i=0, len = itemElems.length; i < len; i++ ) {
            var elem = itemElems[i];
            // get the .chartHeader element
            var headerElem = elem.querySelector(".chartHeader");
            // make element draggable with Draggabilly
            var draggie = new Draggabilly( headerElem );
            // bind Draggabilly events to Packery
            pckry.bindDraggabillyEvents( draggie );
        }

已修复@http://jsfiddle.net/uD5rG/1/

我添加了draggabilly的手柄选项,如下所示

            // make element draggable with Draggabilly
            var draggie = new Draggabilly( elem , {
                handle: '.handle'
            });

使用绑定到jquery UI Draggable。使用jquery UI属性句柄对我来说效果很好。http://packery.metafizzy.co/draggable.html#jquery-ui可拖动

你在jsfiddle上发布的解决方案对我不起作用。

只需像Cole提到的那样使用handle选项。

$(function () {
    var $container = $('.packery');
    $container.packery({
        columnWidth: 80,
        rowHeight: 82 /* +2 for the bottom margin on .item */
    });
    // bind draggabilly events to item elements
    $container.find('.item').each(makeEachDraggable);
    function makeEachDraggable(i, itemElem) {
        // make element draggable with Draggabilly
        var draggie = new Draggabilly(itemElem, {
            handle: '.header'
        });
        // bind Draggabilly events to Packery
        $container.packery('bindDraggabillyEvents', draggie);
    }

});

这是一把简单的小提琴:http://jsfiddle.net/ex5TJ/

此外,请查看此链接以了解更多详细信息:http://draggabilly.desandro.com/

使用jquery:

var draggie = $grid.find('.grid-item').draggable({
            handle: '.ui-sortable-handle'
        });
        $grid.packery('bindUIDraggableEvents', draggie);

最新更新