【发布时间】:2019-01-22 20:30:58
【问题描述】:
我使用这个 jquery 脚本来初始化 packery,将可拖动添加到 .grid-item 元素并打开/关闭拖动功能。
我不太了解 javascript/jquery,但我尝试将我的代码与 codepen.io 上的示例和这个问题进行比较: Is there a way to make only part of a Packery/Draggabilly container draggable?
Packery 和 Draggabilly 的示例和文档:https://packery.metafizzy.co/draggable.html#draggabilly
https://draggabilly.desandro.com/
Codepen 上的 Draggabilly 示例:https://codepen.io/desandro/pen/xbyEyO
似乎没有一个可以让我的代码使用句柄。
<body>
<div class="row">
<div class="">
<button class="toggle-drag-button">Toggle drag</button>
</div>
</div>
<div class="grid">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
<div class="grid-item">
<div class="title-wrapper">
<span>FontAwesome</span><span>Title text</span>
</div>
</div>
</div>
<script>
var $grid = $('.grid').packery({
// options
itemSelector: '.grid-item',
gutter: '.gutter-sizer',
percentPosition: true,
horizontalOrder: true
});
// collection of Draggabillies
var draggies = [];
var isDrag = false;
// make all grid-items draggable
$grid.find('.grid-item').each( function( i, gridItem ) {
var draggie = new Draggabilly( gridItem, {
handle: '.title-wrapper'
});
draggies.push( draggie );
// bind drag events to Packery
$grid.packery( 'bindDraggabillyEvents', draggie );
});
$('.toggle-drag-button').on( 'click', function() {
var method = isDrag ? 'disable' : 'enable';
draggies.forEach( function( draggie ) {
draggie[ method ]();
});
// switch flag
isDrag = !isDrag;
});
</script>
</body>
packery 和 draggabilly 可以按预期工作,即使在托管链接和图像的 CSS3 网格中,但添加 {handle: '.title-wrapper'} 时没有任何效果。
【问题讨论】:
标签: javascript jquery