以前实现元素的拖拽需要使用javascript大段代码实现,又是记录初始位置,又是记录位移等等很麻烦,现在HTML5
提供了专门的拖拽与拖放的API
,先说说相关API
事件 | 产生的源对象 | 说明 |
---|---|---|
drag | 被拖动的元素 | 这个事件在拖拽源触发。即在拖拽操作中触发dragstart 事件的元素。 |
drop | 拖放的目标元素 | 这个事件在拖拽操作结束释放时于释放元素上触发。一个监听器用来响应接收被拖拽的数据并插入到释放之地。这个事件只有在需要时才触发。当用户取消了拖拽操作时将不触发,例如按下了Escape(ESC) 按键,或鼠标在非可释放目标上释放了按键。 |
dragstart | 被拖动的元素 | 当一个元素开始被拖拽的时候触发。用户拖拽的元素需要附加dragstart 事件。在这个事件中,监听器将设置与这次拖拽相关的信息,例如拖动的数据和图像。 |
dragenter | 拖动过程中鼠标经过的元素 | 当拖拽中的鼠标第一次进入一个元素的时候触发。这个事件的监听器需要指明是否允许在这个区域释放鼠标。如果没有设置监听器,或者监听器没有进行操作,则默认不允许释放。当你想要通过类似高亮或插入标记等方式来告知用户此处可以释放,你将需要监听这个事件。 |
dragleave | 拖动过程中鼠标经过的元素 | 当拖拽中的鼠标离开元素时触发。监听器需要将作为可释放反馈的高亮或插入标记去除。 |
dragend | 拖动的对象元素 | 拖拽源在拖拽操作结束将得到dragend 事件对象,不管操作成功与否。 |
dragover | 拖动过程中鼠标经过的元素 | 当拖拽中的鼠标移动经过一个元素的时候触发。大多数时候,监听过程发生的操作与dragenter 事件是一样的。 |