首页 > 编程语言 >HTML + javascript implement a draggable list 一个可以拖拽交换顺序的列表

HTML + javascript implement a draggable list 一个可以拖拽交换顺序的列表

时间:2023-04-01 16:11:59浏览次数:60  
标签:const target javascript list draggable addEventListener dragging id

Reference: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dragover_event


<body>
    <style type="text/css">
        .draggable {
          text-align: center;
          background: red;
          width: 20px;
          height: 20px;
          margin: 2px;
        }
    </style>

    <div>
        <div class='draggable' id='1' draggable='true'>1</div>
        <div class='draggable' id='2' draggable='true'>2</div>
        <div class='draggable' id='3' draggable='true'>3</div>
        <div class='draggable' id='4' draggable='true'>4</div>
    </div>

    <script type="text/javascript">
        let dragging = null
        document.querySelectorAll('.draggable')
            .forEach(e => {
                e.addEventListener('dragstart', e=>{
                    dragging=e.target
                })
                e.addEventListener('dragenter', e=>{
                    e.preventDefault()
                    const target = e.target
                    const draggingId = parseInt(dragging.id)
                    const targetId = parseInt(target.id)

                    target.id = draggingId
                    dragging.id = targetId

                    if (targetId > draggingId) {
                        dragging.insertAdjacentElement('beforebegin', target)
                    } else {
                        dragging.insertAdjacentElement('afterend', target)
                    }
                })
                e.addEventListener('dragover', e=>{
                    e.preventDefault()
                })
                e.addEventListener('drop', e=>{
                    e.preventDefault()
                })
            })
    </script>
</body>

标签:const,target,javascript,list,draggable,addEventListener,dragging,id
From: https://www.cnblogs.com/hangj/p/17278773.html

相关文章

  • AWS- [iam list-role-policies] - Description
    awsiamlist-role-policies--role-namexxxxlist-role-policies—AWSCLI1.27.104CommandReference(amazon.com)ListsthenamesoftheinlinepoliciesthatareembeddedinthespecifiedIAMrole.AnIAMrolecanalsohavemanagedpoliciesattachedtoit.......
  • javascript 学习笔记3
    和let一样,通过const定义的变量不会被提升到顶端。const变量不能在声明之前使用。回调函数曾经是JavaScript中实现异步函数的主要方式。=>的使用:functiondoStep1(init,callback){constresult=init+1;callback(result);}functiondoStep2(init,callback){......
  • JavaScript
    大致路径学习JavaScript的路径可以大致分为以下几个方向:HTML和CSS:在学习JavaScript之前,您需要先掌握HTML和CSS基础知识,这是构建网页的基础。JavaScript基础:学习JavaScript的基本语法、变量和数据类型、运算符、条件语句、循环语句等。DOM编程:学习如何通过Ja......
  • Repository base is listed more than once in the configuration Repository updates
    下载软件包时报错:RepositorybaseislistedmorethanonceintheconfigurationRepositoryupdatesislistedmorethanonceintheconfigurationRepositoryextrasislistedmorethanonceintheconfigurationRepositorycentosplusislistedmorethanonceint......
  • restHighLevelClient 操作报错:listener timeout after waiting for [30000] ms
     java.io.IOException:listenertimeoutafterwaitingfor[30000]msatorg.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:905)atorg.elasticsearch.client.RestClient.performRequest(RestClient.java:229)atorg.elasti......
  • 实体类转化为DataTable,,DataTable 转换为List 集合
    点击查看代码///<summary>///C#List转换成DataTable///</summary>///<paramname="list"></param>///<returns></returns>publicstaticDataTableListToDataTable(IList......
  • 系统化学习前端之JavaScript(ES6)
    前言ES6同样是ECMAScript的拓展,发布于2015年,目前多数浏览器对于部分ES6更新内容不支持,通常需要借助bable编译器编译成ES5或者ECMAScript早期版本语法去执行。ES6的学习推荐阮一峰老师的ES6教程。ES6ES6是ECMAScript最近一次较大版本的更新,更新内容主要是一......
  • javascript大文件上传解决方案支持分片断点上传
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • java 集合过滤出符合条件的List元素集合(lambda表达式)
    应用场景在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据。比如:我们有一批学生对象,每个学生都有自己的性别属性,但......
  • python——list求交集、并集、差集
    https://blog.csdn.net/qq_41985134/article/details/122956104   ......