美文网首页
html5 drag拖拽

html5 drag拖拽

作者: 葵葵的花园 | 来源:发表于2019-03-25 00:38 被阅读0次

一、概念

1. 被拖拽元素(拖拽目标)

1.1 属性

必须给拖拽目标设置draggable=true,目标才能拖动

1.2 方法

1.2.1
ondragstart - 用户开始拖动元素时触发 - 只触发一次

      handleDragStart(event, code) {
        console.log('拖动开始');
        // 传递数据
        event.dataTransfer.setData('code', code);
      },

1.2.2
ondrag - 元素正在拖动时触发 - 触发多次

      handleDrag(event, code) { 
        console.log(event);
      },

1.2.3
ondragend - 完成目标元素拖动时触发 - 触发一次

      handleDragEnd(event) { 
        console.log('拖动结束');
        let code = event.dataTransfer.getData('code'),
      },

2. 可以放置被拖拽元素的可释放元素(释放目标)

2.1 方法

2.1.1
ondragenter - 当被鼠标拖动的元素进入该元素范围内时触发此事件 - 触发一次

      handleDragEnter(event) { 
        console.log(event);
      },

2.1.2
ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件 - 触发多次

      handleDragOver(event) { 
        console.log(event);
      },

2.1.3
ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件 - 触发一次

      handleDragLeave(event) { 
        console.log(event);
      },

2.1.4
ondrop - 在一个该元素中的拖动过程中,释放鼠标键时触发此事件 - 触发一次

      handleDrop(event) { 
        console.log('拖动结束');
        let code = event.dataTransfer.getData('code'),
      },

2.2 注意事项

1.可释放目标必须重写ondragenterondragover两个方法并且该元素要使用这两个方法,才能将元素变成可放置东西的元素。不然拖动目标到任何元素都会显示一个圆圈不可释放。
2.ondrop是只有在实现这个方法的元素(容器)里释放鼠标键触发。

3. 拖拽目标和释放目标间传递数据

3.1 dataTransfer对象

dataTransfer对象是事件对象的属性,所以只能在拖放事件的事件处理程序中访问dataTransfer对象。在事件处理程序中,可以使用这个对象的属性和方法来 完善拖放功能。

3.2 方法

  1. setData('code','hello')
  2. getData('code')

3.setDragImage(Element img,long x,long y):自定义拖放元素的鼠标图标

img表示拖放时的 <> 元素的图标,x 表示图标距离鼠标指针的x轴方向的偏移值,y表示图标距离鼠标指针y轴方向的偏移值。

  1. ......

二、event事件中各种位置信息

鼠标事件距离分析.png
1.如上图所示,需注意pageYclientY在页面没有滚动条时是一样的值,但有了滚动条以后,pageY一定是大于或等于 clientY。即pageY受到滚动条的影响。

三、实战

有了以上基础,实现拖拽功能很简单,无非就是设置元素的绝对定位或者在释放的地方添加一个元素,这些教程请自行百度。

相关文章

  • 控件拖拽

    JavaScript实现最简单的拖拽效果 HTML5 drag & drop 拖拽与拖放简介 基于HTML5 dr...

  • HTML5 drag & drop --- 初期尝试

    HTML5:drag & drop API 绑定在拖拽目标 绑定在放置目标 实操 编写代码 总结 drag & d...

  • HTML5拖拽drag

    通过拖拽实现页面元素的位置改变 实现拖拽效果 源元素 - 要拖拽的文件 目标元素 - 要拖拽到哪里去 目前实现拖拽...

  • html5 drag拖拽

    一、概念 1. 被拖拽元素(拖拽目标) 1.1 属性 必须给拖拽目标设置draggable=true,目标才能拖动...

  • 5-28 ---- 6-5 号

    1 : HTML5新增了哪些内容或API,使用过哪些 新特性: 1.拖拽释放(Drag and drop) API...

  • HTMLH和CSS3有哪些新特性

    HTML5 (1)问题分析 对于目前市场上来说HTML5中需要掌握的新特性有: 1.拖拽释放(Drag and d...

  • html5有新特性

    HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。 拖拽释放(Drag ...

  • h5的新特性

    HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。 拖拽释放(Drag ...

  • html5 drag

    说明:drag-item是拖拽元素的class,drag-target是拖拽的目标元素的class。

  • 关于拖放的笔记

    angular因为是双向数据流,处理拖拽后的数据变化比较方便,用过原生的html5拖放(drag和drop)、an...

网友评论

      本文标题:html5 drag拖拽

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