当前位置:网站首页>拖放事件,dataTransfer,getBoundingClientRect
拖放事件,dataTransfer,getBoundingClientRect
2022-07-30 10:00:00 【飞奔的马铃猫】
最近要写一个lowcode项目,对于我这个只写过网页项目的人来说,真的是啥也不会啊。看了一个项目的源码,看这里的东西好好学习一下,顺便复习一下原来的东西。QAQ
首先是
从没用过的拖拽
拖放事件
拖放事件中有三种对象。
- 源对象:过程中被拖放的对象
- 过程对象:拖放中经过的对象
- 目标对象:最终到达的对象
这三种对象有其不同的触发事件
源对象
dragstart:开始拖放,开始移动时事件触发。drag:拖放过程中,移动被拖拽对象时触发。dragend:拖放结束,整个拖放操作结束时触发。
过程对象
dragenter:源对象进入过程对象范围内,被拖拽对象进入过程对象时被触发dragover:源对象在过程对象范围内移动,被拖拽对象在过程对象内移动时触发dragleave:源对象离开过程对象的范围,被拖拽对象离开目标对象时触发
目标对象:
drop:在目标对象内松手时触发。
dataTransfer对象
在所有的拖放事件中都提供了一个数据传输对象dataTransfer,主要是用于在源对象和目标对象之间传递数据。
方法
setData(format, data)
设置拖拽事件中要传递的数据,
format的参数为数据类型该方法向
dataTransfer中对象中存入数据,接受两个参数,第一个表示要存入的数据类型,共有4种:- text/plain
- text/html
- text/xml
- text/uri-list
- 如果写入的参数不是上面这几种,就相当于新创了一个数据类型。使得
dataTransfer.types列表中的最后一个项目将是新类型。
参数2是要存入的数据
例:
e.dataTransfer.setData("num",index)
getData(format)
- 获得拖拽事件中传递的数据,
format参数为数据类型 - 该方法从
dataTransfer对象中读取数据,参数为在setData方法中指定的数据类型,例如:event.dataTransfer.getData('text/plain')
- 获得拖拽事件中传递的数据,
clearData()
- 有参数:清空该参数对应存储的数据
- 无参数:清空所有数据
getBoundingClientRect()
Element.getBoundingClientRect() 方法返回元素的大小及其相对于视口(电脑屏幕)的位置。
连带复习:
clientX:当鼠标事件发生时,鼠标相对于浏览器(浏览器上显示页面得位置)X轴的位置;
clientY:当鼠标事件发生时,鼠标相对于浏览器y轴的位置;
screenX:当鼠标事件发生时,鼠标相对于显示器屏幕x轴的位置;
screenY:当鼠标事件发生时,鼠标相对于显示器屏幕y轴的位置;
offsetX:当鼠标事件发生时,鼠标相对于事件源x轴的位置
offsetY:当鼠标事件发生时,鼠标相对于事件源y轴的位置
\
边栏推荐
- idea2021+Activiti【最完整笔记一(基础使用)】
- 梅科尔工作室-看鸿蒙设备开发实战笔记五——驱动子系统开发
- Study Notes 11--Direct Construction of Local Trajectories
- 从数据流中快速查找中位数
- Meikle Studio - see the actual combat notes of Hongmeng equipment development five - drive subsystem development
- mysql安装教程【安装版】
- 一个近乎完美的 Unity 全平台热更方案
- Determine whether a tree is a complete binary tree - video explanation!!!
- debian10安装djando
- Container Technology - A Simple Understanding of Kubernetes Objects
猜你喜欢

Linux内核设计与实现(十)| 页高速缓存和页回写

Re20:读论文的先例:普通法的信息理论分析

【HMS core】【Analytics Kit】【FAQ】如何解决华为分析付费分析中付款金额显示为0的问题?

PyQt5 - Drawing different types of straight lines

梅科尔工作室-看鸿蒙设备开发实战笔记四——内核开发

梅科尔工作室-看鸿蒙设备开发实战笔记五——驱动子系统开发

Detailed explanation of JVM memory layout, class loading mechanism and garbage collection mechanism

Meikle Studio - see the actual combat notes of Hongmeng device development 4 - kernel development

Re17: Read the paper Challenges for Information Extraction from Dialogue in Criminal Law

多线程保证单个线程开启事务并生效的方案
随机推荐
CVTE school recruitment written test questions + summary of knowledge points
The method of parameter passing
Some commands of kubernetes
spark udf 接受并处理 null值.
Multi-threading scheme to ensure that a single thread opens a transaction and takes effect
The creation of a large root heap (video explanation)
PyQt5 - Drawing different types of straight lines
Detailed explanation of JVM memory layout, class loading mechanism and garbage collection mechanism
【HMS core】【FAQ】HMS Toolkit典型问题合集1
ospf2 two-point two-way republish (question 2)
nacos实战项目中的配置
debian10安装djando
在机器人行业的专业人士眼里,机器人行业目前的情况如何?
flyway的快速入门教程
[100个Solidity使用技巧]1、合约重入攻击
一个近乎完美的 Unity 全平台热更方案
kubernetes的一些命令
Quick Start Tutorial for flyway
容器技术 -- 简单了解 Kubernetes 的对象
多线程--线程和线程池的用法