HTML5 拖放以重新排列网格中的小部件
HTML5 drag and drop to rearrange widgets in a grid?
我有一个由小部件的假想网格组成的仪表板,网格有 2 行,每行有 3 个插槽。我希望用户能够将一段内容拖动到不同的插槽,这样它就会替换插槽中已有的内容(将其推到右侧,可能脱离网格)。我正在使用此代码来处理拖放。如何检测冲突并替换目标插槽中的小部件?
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
每个网格槽如下所示:
<div id="gridslot" ondrop="drop(event)" ondragover="allowDrop(event)"/>
<div id="widget" draggable="true" ondragstart="drag(event)"/>Some Content</div>
</div>
这是伪代码
function setContent(targetCell, content) {
if (targetCell is off the grid)
return;
if (targetCell.content is not empty) {
// we need to shift the targets content to the right
setContent(targetCell.nextCellToTheRight, targetcell.content);
}
targetCell.content = content;
}
请注意,它会递归地向右移动内容以腾出空间,如有必要,可能会移动整行。
这并不能直接回答您的问题,但我会看看这个jquery插件: Html5 可排序
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在大网格上映射小网格
- 可在角网格中的小部件之间拖动
- Kendo UI网格小工具客户端对数字列进行过滤
- 使用 KendoUI 网格小部件使用本地数据实现 CRUD 函数
- HTML5 拖放以重新排列网格中的小部件
- 带有网格和挖空的小部件绑定
- 以编程方式移动网格小组件
- 网格员动态添加的小部件使可拖动
- Gridster remove_widget抛出错误,remove()不会从网格中删除小部件空间
- 列# 39;在firefox中,每次使用自动宽度更新网格后,宽度都会变小
- 如何使网格自动移动的小部件停止向上
- Zurb数据清除在小块网格上不工作
- 从角网格中移除一个小部件
- 在网格上,拖动时保持小部件在鼠标下方
- 剑道ui -旧剑道Web -网格和上传小部件
- Kendo UI-通过网格中的上传小部件将图像路径存储在数据库中
- extjs 在自定义元素中使用网格小部件的可能性
- 网格不能动态移动小部件