拖放首先是由IE4.0引入的,一开始只有IE支持此功能。但现在已经作为HTML5的标准的一部分。
有2种行为可以实现拖放:
系统拖放和模拟拖放,其中以前只有IE实现了系统拖放
系统拖放的优点:可以实现浏览器和桌面、浏览器和浏览器、窗口之间、框架页之间的移动;
拖放一开始只支持图像和文本拖放,后来进行了扩展,现在几乎所有元素都可被拖放了。
(一)系统拖放
1.拖放事件
拖放事件分为2种:在被拖放项的事件和在放置目标上的事件
1)被拖放项事件
某个项被触发时的事件触发顺序:dragstart; drag; dragend
dragstart: 当按下鼠标按钮,开始移动鼠标时,开始触发此事件
drag: 只要对象还在被拖得,此事件就会一直触发,类似mousemove
dragend:在拖放停止时(在有效或无效的放置对象上放下该项),则触发此事件
2)放置目标事件
当被拖放项拖到有效的放置目标上后触发顺序:dragenter; dragover; dragleave/drop
dragenter: 当被拖放项刚进入放置目标时触发,类似mouseover
dragover:当被拖放项在目标边界内将一直触发,当被拖放项被拖出目标后则停止触发
dragleave:当此目标不是被拖放项最终的放置目标,则在离开此目标时触发该事件,类似mouseout
drop: 当此目标正是被拖放项最终的放置目标,则触发此事件代替dragleave。
2种事件的触发顺序是:dragstart drag .