美文网首页
HTML 拖拽排序

HTML 拖拽排序

作者: 我没叫阿 | 来源:发表于2023-10-07 09:49 被阅读0次
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        div {
            width: 100%;
            height: 100vh;

        }

        p {
            width: 400px;
            padding: 20px;
            background: lightgreen;
            border-radius: 5px;
            margin: 20px;
            text-align: left;
            line-height: 20px;
        }

        p.draggable {
            border: 1px dashed #ccc;
            opacity: .5;
        }
    </style>
</head>

<body>
    <div id="box">
        <p draggable="true">1</p>
        <p draggable="true">2</p>
        <p draggable="true">3</p>
        <p draggable="true">4</p>
        <p draggable="true">5</p>
    </div>
</body>

<script>
    const box = document.getElementById('box')

    let sourceNode;
    box.ondragstart = (e) => {
        setTimeout(() => {
            e.target.classList.add('draggable')
        }, 0);
        e.dataTransfer.effectAllowed = 'move';
        sourceNode = e.target
    }

    box.ondragover = (e) => {
        e.preventDefault()
    }

    box.ondragenter = (e) => {
        e.preventDefault()
        if (e.target === box || e.target === sourceNode) { return }

        const sourceIndex = [...box.children].indexOf(sourceNode)
        const targetIndex = [...box.children].indexOf(e.target)

        if (sourceIndex < targetIndex) {
            // console.log('向下');
            box.insertBefore(sourceNode, e.target.nextElementSibling)
        } else {
            // console.log('向上'); 
            box.insertBefore(sourceNode, e.target)
        }
        console.log(e.target);
    }

    box.ondragend = (e) => {
        e.target.classList.remove('draggable')
    }
</script>

</html>

相关文章

  • POS-2017

    拖拽排序功能 实现方法: 使用jquery的Sortable功能可以实现拖拽功能 index页面 html部分 商...

  • iOS collectionView拖拽排序

    iOS collectionView拖拽排序 iOS collectionView拖拽排序

  • source code:TableviewGroup阴影加圆角

    长按拖拽排序(上传者:yeliang_new)长按拖拽排序,拖拽排序。拖拽排序是新闻类的App可以说是必有的交互设...

  • DOM拖拽排序(JavaScript)

    实现拖拽排序功能,废话少说,上代码 html部分 js部分 效果如下

  • HTML 5 拖拽

    @(HTML5)[HTML 5拖拽] [TOC] 十三、HTML 5 拖拽 HTML 5 拖拽事件 图片自带拖拽功...

  • 拖拽操作

    应用: 1.拖拽排序2.拖拽上传3.拖拽裁剪 拖拽流程 确定可拖拽的内容-->开始拖拽-->拖拽过程-->结束拖拽...

  • 拖拽div的值到table

    Html 代码 jQeruyUI拖拽效果_拖拽div的值到table表格...

  • 小程序拖拽排序组件 Drag

    仿发朋友圈,图片拖拽排序功能,小程序拖拽排序组件 效果演示 地址:https://github.com/yijin...

  • 2019-05-20

    简介 UGUI 图片拖拽排序demo.gif DropZone.cs 拖拽Continer PointerEven...

  • jquery插件——拖拽自动排序

    前言 本插件主要应用于文字列表拖拽后自动排序,应用于ol或ul标签下。 步骤 css样式 html js 完整实例

网友评论

      本文标题:HTML 拖拽排序

      本文链接:https://www.haomeiwen.com/subject/khombdtx.html