要保存 Packery 网格项的默认位置,可以通过以下步骤实现:
var itemPositions = [];
init
事件中,获取每个网格项的默认位置并保存到数组中。var grid = document.querySelector('.grid');
var packery = new Packery(grid, {
// Packery 配置
});
packery.on('init', function() {
packery.getItemElements().forEach(function(item) {
var position = {
x: item.offsetLeft,
y: item.offsetTop
};
itemPositions.push(position);
});
});
packery.remove()
方法将所有网格项从 Packery 中移除,然后使用 itemPositions
数组中的默认位置重新添加网格项到 Packery 中。function restoreDefaultPosition() {
packery.remove(packery.getItemElements());
packery.getItemElements().forEach(function(item, index) {
var position = itemPositions[index];
item.style.left = position.x + 'px';
item.style.top = position.y + 'px';
});
packery.reloadItems();
packery.layout();
}
这样,每次调用 restoreDefaultPosition()
方法时,所有网格项都会回到它们的默认位置。
请注意,上述代码示例中的 .grid
是一个 HTML 元素的选择器,你需要根据你的实际情况替换它。另外,确保在引入 Packery 库之前添加正确的脚本标签。