美文网首页
设置拖拽图片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

    效果图:

  • HTML5拖拽事件

    HTML5拖拽事件 1. 设置拖拽 图片自带拖拽功能其他元素可设置draggable属性 例子: 1.1. 拖拽元...

  • HTML5 拖拽事件

    HTML5 拖拽事件图片自带拖拽功能其他元素也通过设置 draggable=true属性 实现拖拽功能 垃圾(拖拽...

  • Unity2D 瓦片地图制作(Unity版本 2021.1.23

    1.将图片资源拖拽到Unity资源文件目录下 2.选中图片将Sprite Mode设置为 Multiple ,并且...

  • h5-API

    拖拽API 属性 draggable 设置为 draggable=true 可以被拖拽 拖拽事件 ondragst...

  • H5新增API

    拖拽API 属性 draggable 设置为true 可以被拖拽 拖拽事件 ondragstart 开始被拖动...

  • HTML5新增API

    拖拽API 属性 draggable 设置为true 可以被拖拽 拖拽事件 ondragstart 开始被拖动...

  • HTML 5 拖拽

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

  • 实践随记

    项目实践 应用图标 可以通过将一张图片的名称改为icon.png,并将图片拖拽到项目中,XCode会自动识别并设置...

  • Storyboard 中设置图片的圆角

    通常我们一般是代码设置图片的圆角裁剪,在storyboard 中无法通过右边的工具栏进行相关的设置操作,需要拖拽出...

网友评论

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

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