javascript - 拖动 div/lessons 并获取每个的位置

标签 javascript html css

我正在开发一个类(class)平台站点,每个类(class)可以有很多课。

在数据库中,每节课都有一个名为position的列,所以对于最终用户来说,只需按position顺序查询列表,然后它们就会显示出来以正确的顺序。

问题出在管理面板,注册完所有类(class)后,我想通过将它们拖到我想要的位置然后保存来组织类(class),如本例所示:

https://drive.google.com/file/d/1L__uKtZXrSC3huhoCuZ-AaKlPOCPtC3U/view?usp=sharing

在我的仪表板中,HTML 和 CSS 看起来像这样

.box {
    width: 400px;
    height: 30px;
    line-height: 30px;
    background: #232323;
    color: #fff;
    border-radius: 5px;
    margin: 1rem 0px;
    padding: 0.5rem;
  }
<div class="box" position="1">lesson 1 - learn HTML</div>
<div class="box" position="2">lesson 2 - learn CSS</div>
<div class="box" position="3">lesson 3 - learn JavaScript</div>

那么如何拖动 div/类(class),始终保持 position 属性 具有 div 所在位置的正确值?

最佳答案

SortableJS库使拖动元素变得容易。 Detailed library options are explained here.

下面的代码片段提供了一个简单的演示,说明如何确定刚刚拖动的元素并获取其索引。

new Sortable(example, {
  animation: 150,
  onEnd: (e) => {
    console.log(e.item, e.oldIndex, e.newIndex);
    // Now save the new order, as needed
  }
});
.box {
  width: 400px;
  height: 30px;
  line-height: 30px;
  background: #232323;
  color: #fff;
  border-radius: 5px;
  margin: 1rem 0px;
  padding: 0.5rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.9.0/Sortable.min.js"></script>

<div id="example">
  <div class="box" position="1">lesson 1 - learn HTML</div>
  <div class="box" position="2">lesson 2 - learn CSS</div>
  <div class="box" position="3">lesson 3 - learn JavaScript</div>
</div>

关于javascript - 拖动 div/lessons 并获取每个的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383052/

相关文章:

javascript - 获取待处理的 POST/GET 请求数量

javascript - 如果另一个数组具有相似项,则从数组中删除项

JavaFX ControlsFx 添加自定义 CSS(通知)

javascript - 使用javascript正则表达式提取字符串

javascript - 如何在我的三个程序开始执行之前制作菜单

html - 具有倾斜边框的元素

Javascript 动态表单字段

jquery - 多次更改 mouseleave 上的类

html - 底部边框的边距

css - 带边框的梯形标签