# 鼠标事件
# drag事件
- DataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer。
- draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如:
<div title="拖拽我" draggable="true">列表1</div>
1
- ondragstart 事件:当拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上----开始
- ondragenter 事件:当拖曳元素进入目标元素的时候触发的事件,此事件作用在目标元素上----进入目标,目标元素事件
- ondragover 事件:拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上----在目标上,目标元素事件
- ondragleave 事件:拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上----离开目标,目标元素事件
- ondrop 事件:被拖拽的元素在目标元素上同时鼠标放开触发的事件,此事件作用在目标元素上----放入目标,目标元素事件
- ondragend 事件:当拖拽完成后触发的事件,此事件作用在被拖曳元素上---结束
- event.preventDefault() 方法:阻止默认的些事件方法等执行。在ondragover中一定要执行preventDefault(),否则ondrop事件不会被触发。另外,如果是从其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。此时需要用用document的ondragover事件把它直接干掉。
- event.setDataTransfer.effectAllowed 属性:就是拖拽的效果。
- evetn.setDataTransfer.setDragImage() 方法:指定图片或者文档元素做拖动时的视觉效果。
# dataTransfer 属性
- dropEffect 在dragenter和dragover事件中处理成需要的效果值;在drop和dragend事件中将初始化成期望的动作。
- copy: 复制到新的位置
- move: 移动到新的位置.
- link: 建立一个源位置到新位置的链接.
- none: 禁止放置(禁止任何操作).
- effectAllowed 拖动时被允许的效果,可以在dragstart事件与dragenter及dragover事件中设置期望的效果
- copy: 复制到新的位置.
- move:移动到新的位置 .
- link:建立一个源位置到新位置的链接.
- copyLink: 允许复制或者链接.
- copyMove: 允许复制或者移动.
- linkMove: 允许链接或者移动.
- all: 允许所有的操作.
- none: 禁止所有操作.
- uninitialized: 缺省值(默认值), 相当于 all.
- files 一个在数据传输上可用的本地文件列表,如涉及拖动文件时。
- types 保存一个被存储的类型列表作为第一项,顺序与被添加的数据的顺序一致。
- mozCursor: auto, default
# dataTransfer 方法
- obj.addElement() 设置手动源,修改这项将会影响拖动的哪个节点和dragend事件的触发。默认目标是被拖动的节点。
- obj.clearData(type) 删除与给定类型关联的数据。或者元参时删除所有类型相关联的数据
- obj.getData(type) 获取指定类型的数据
- obj.setData(type, data) 给定的类型设置数据
- obj.setDragImage(imgElement, offsetX, offsetY)
# select事件
- onselect 输入框文本先中时触发
- onselectStart 用于所以对象,但不被input 和textarea支持 user-select
# mouse事件
- mousedown:鼠标按钮被按下(左键或者右键)时触发。不能通过键盘触发。
- mouseup:鼠标按钮被释放弹起时触发。不能通过键盘触发。
- click:单击鼠标左键或者按下回车键时触发。这点对确保易访问性很重要,意味着onclick事件处理程序既可以通过键盘也可以通过鼠标执行。 1+2连续;取消了其中一个click也不会被触发
- dblclick:双击鼠标左键时触发。
- mouseover:鼠标移入目标元素上方。鼠标移到其
后代元素上时会触发。 - mouseout:鼠标移出目标元素上方。
- mouseenter:鼠标移入元素范围内触发,该事件不冒泡,即鼠标移到其
后代元素上时不会触发。 - mouseleave:鼠标移出元素范围时触发,该事件不冒泡,即鼠标移到其后代元素时不会触发。
- mousemove:鼠标在元素内部移到时不断触发。不能通过键盘触发。
# 事件位置(todo...)
- clientX, clientY
- layerX, layerY
- offsetX, offsetY
- movementX, movementY
- pageX, pageY
- screenX, screenY
# touch事件(todo...)
# 动画事件(todo...)
- TransitionEnd
- AnimationEnd