【发布时间】:2019-09-13 01:47:17
【问题描述】:
我正在尝试创建此行为,但不确定 Gridstack 是否支持它。我有 3 个 Gridstack 网格:Grid1、Grid2 和 Grid3。 Grid1 是一个独立的网格,Grid3 嵌套在 Grid2 中。我需要能够将小部件从 Grid1 拖到 Grid2(外部网格)和 Grid3(嵌套网格)中。以下示例我能够在 2 个顶级网格之间拖动小部件并创建一个嵌套网格,但不能将这 2 个组合在一起。如果支持 - 任何指针表示赞赏。
注意:将 sn-p 扩展到全屏
$(document).ready(function() {
$('.grid-stack').gridstack();
});
.grid-stack {
background: lightgoldenrodyellow;
}
.grid-stack-item-content {
color: #2c3e50;
text-align: center;
background-color: #18bc9c;
}
.grid-stack .grid-stack {
/*margin: 0 -10px;*/
background: rgba(255, 255, 255, 0.3);
}
.grid-stack .grid-stack .grid-stack-item-content {
background: lightpink;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.4.0/gridstack.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.0/jquery-ui.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.5.0/lodash.min.js"></script>
<script type="text/javascript" src='//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.4.0/gridstack.min.js'></script>
<script type="text/javascript" src='//cdnjs.cloudflare.com/ajax/libs/gridstack.js/0.4.0/gridstack.jQueryUI.min.js'></script>
<div class="container-fluid">
<h1> Multilevel Nested grids demo</h1>
<div class="grid-stack" id="container-stack">
<div class="grid-stack-item" data-gs-x="0" data-gs-y="0" data-gs-width="4" data-gs-height="4">
<div class="grid-stack-item-content">
<span>Grid One</span>
<div class="grid-stack" id="grid-one">
<div class="grid-stack-item widget" data-gs-x="0" data-gs-y="0" data-gs-width="3" data-gs-height="1">
<div class="grid-stack-item-content">1</div>
</div>
<div class="grid-stack-item widget" data-gs-x="3" data-gs-y="0" data-gs-width="3" data-gs-height="1">
<div class="grid-stack-item-content">2</div>
</div>
</div>
</div>
</div>
<div class="grid-stack-item" data-gs-x="4" data-gs-y="0" data-gs-width="8" data-gs-height="4">
<div class="grid-stack-item-content">
<span>Grid Two</span>
<div class="grid-stack" id="grid-two">
<div class="grid-stack-item widget" data-gs-x="0" data-gs-y="0" data-gs-width="3" data-gs-height="1">
<div class="grid-stack-item-content">3</div>
</div>
<div class="grid-stack-item widget" data-gs-x="3" data-gs-y="0" data-gs-width="3" data-gs-height="1">
<div class="grid-stack-item-content">4</div>
</div>
<div class="grid-stack-item" data-gs-x="6" data-gs-y="0" data-gs-width="6" data-gs-height="3">
<div class="grid-stack-item-content">
<span>Grid Three</span>
<div class="grid-stack" id="grid-three">
<div class="grid-stack-item widget" data-gs-x="0" data-gs-y="0" data-gs-width="6" data-gs-height="1">
<div class="grid-stack-item-content">5</div>
</div>
<div class="grid-stack-item widget" data-gs-x="6" data-gs-y="0" data-gs-width="6" data-gs-height="1">
<div class="grid-stack-item-content">6</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
-
您可以添加一些您尝试过的示例代码吗?
-
@RachelGallen 我几乎下载并使用了这两个示例:1 - 将小部件从网格拖动到网格:gridstackjs.com/demo/two.html 和 2 - 嵌套网格:gridstackjs.com/demo/nested.html。但我无法让这两部分一起工作。
-
从演示中我可以看到,该库似乎只支持重新排列图块,但你不能将一个放在另一个或任何东西中(就像一个小的放在一个大的里面),它们是并非所有可拖动和可放置的区域。我没有看嵌套示例,我没有看到它。如果这是您想要的,您可能可以调整网格堆栈 J 以使它们同时拖放。昨晚在js里看到了设置的地方。
-
谢谢,我看看能不能装上我一直在试验的小提琴 sn-ps。并感谢您的建议。你是对的,我可能不得不在 gridstack API 之外使用更通用的东西。
-
@Towkir 仍在使用各种方法进行调整,但我研究得越多,如果我想至少模仿这种行为,这似乎就是一种黑客行为。例如。在放置期间,从小部件中取出内部网格(DOM 方式)并将其附加到文档的主体(同时将其位置保持在同一位置)。
标签: javascript jquery drag-and-drop nested gridstack