首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Packery +可拖动UI在拖动后排序

Packery +可拖动UI在拖动后排序
EN

Stack Overflow用户
提问于 2020-07-10 14:44:44
回答 1查看 48关注 0票数 0

如何在拖拽一个项目后创建一个有序列表?我使用.packery ()方法重新排序。但是移动的项目会跳回来。

代码语言:javascript
复制
    <h1>Packery - get item elements in order after drag</h1>
        <div class="grid">
          <div class="grid-item grid-item--width2"></div>
          <div class="grid-item grid-item--height2"></div>
          <div class="grid-item"></div>
          <div class="grid-item"></div>
 
        </div>
<script>
// external js: packery.pkgd.js, draggabilly.pkgd.js

var $grid = $('.grid').packery({
  itemSelector: '.grid-item',
  columnWidth: 100
});

// make all grid-items draggable
$grid.find('.grid-item').each( function( i, gridItem ) {
  var draggie = new Draggabilly( gridItem );
  // bind drag events to Packery
  $grid.packery( 'bindDraggabillyEvents', draggie );
});


// show item order after layout
function orderItems() {
  var itemElems = $grid.packery('getItemElements');
  $( itemElems ).each( function( i, itemElem ) {
    $(itemElem).text( i + 1 );
  });
}

$grid.on( 'layoutComplete', orderItems );
$grid.on( 'dragItemPositioned', orderItems );
$grid.on("dragItemPositioned", function (event, draggedItem) {
    $grid.packery();
  });
</script>

https://codepen.io/maxim-dmitruk/pen/NWxzqoe

EN

回答 1

Stack Overflow用户

发布于 2020-07-10 14:52:03

我的决定是通过添加

代码语言:javascript
复制
    $grid.on("dragItemPositioned", function (event, draggedItem) {
    $grid.packery();
    $grid.packery("layoutItems", draggedItem); //this one
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62828685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档