美文网首页
设置拖拽图片DataTransfer.setDragImage

设置拖拽图片DataTransfer.setDragImage

作者: Mr老朝 | 来源:发表于2021-02-09 10:22 被阅读0次
    <!DOCTYPE html>
    <html lang=en>
    <title>设置拖拽图片demo - DataTransfer.setDragImage()</title>
    <meta name="viewport" content="width=device-width">
    <style>
        div {
            margin: 0em;
            padding: 2em;
        }
        #source {
            color: blue;
            border: 1px solid black;
        }
        #target {
            border: 1px solid black;
        }
    </style>
    <script>
    // 预加载图片
    (new Image()).src = `https://h5.bestwehotel.com/storage/download/3a4fd61b-f818-4def-bd51-0ce4ab4c515c/we_1612513678550.png?x-oss-process=image/resize,h_200`;
    
    function dragstart_handler(ev) {
        console.log("拖拽开始");
    
        // 设置数据
        ev.dataTransfer.setData("originElementId", ev.target.id);
    
        // 创建一个图像并且使用它作为拖动图像
        // 请注意:图片要求已经加载,否则浏览器将会使用默认的拖动图片
        // 默认的拖动图片与拖动对象没有联系。一般是一个小型文件图标
        // 开启开发工具的"disable cache"会使预加载图片无效,导致显示不了图片
        var img = new Image(); 
        img.src = `https://h5.bestwehotel.com/storage/download/3a4fd61b-f818-4def-bd51-0ce4ab4c515c/we_1612513678550.png?x-oss-process=image/resize,h_200`;
        ev.dataTransfer.setDragImage(img, 10, 10);
    }
    
    function dragover_handler(ev) {
        console.log("有拖拽对象进入");
        ev.preventDefault();
    }
    
    function drop_handler(ev) {
        console.log("松开拖拽");
        ev.preventDefault();
    
        // 获取拖放对象设置的数据
        var data = ev.dataTransfer.getData("originElementId");
        ev.target.appendChild(document.getElementById(data));
    }
    </script>
    
    <body>
        <h1>例子: <code>DataTransfer.setDragImage()</code></h1>
        <div>
            <p id="source" ondragstart="dragstart_handler(event);" draggable="true">拖动此元素,到"拖拽松开区域",松开拖拽后移动这个元素到松开区域。</p>
        </div>
        <div id="target" ondrop="drop_handler(event);" ondragover="dragover_handler(event);">拖拽松开区域</div>
    </body>
    </html>
    

    效果图:


    image.png

    相关文章

      网友评论

          本文标题:设置拖拽图片DataTransfer.setDragImage

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