在HTML5中新增了关于拖放的API,通过拖放API可以放HTML页面任意元素变成可拖动的。其实很简单,只有两个方面:一个是在某个元素上按下鼠标不松开,移动鼠标,这就是拖的动作,第二个是松开鼠标,将元素放到某一位置,这个是放的动作。
在HTML5中<img.../>元素默认是可拖动的,而<a.../>元素只要设置href属性,也是默认可以拖动的。
对于普通元素而言,如果可以把他变成可拖动的,只需要把该元素的draggable属性设为true即可。但是仅仅设置这个还不行,只表示元素可拖动,并没有携带元素,用户看不到效果。如果需要拖动操作携带数据,应该为被拖动元素的ondragstart事件指定监听器。
上面这些拖动中都带了“禁止”标志,拖到目的地不能被接受,是因为拖动元素被“拖动”document对象时,document对象默认阻止了拖动事件。因此不能接受放。
只要监听document的ondrop方法,用户把“<div.../>元素”放到document中,通过JavaScript代码把该元素移动到该位置即可。