HTML5中拖放功用的运用方法
拖放就是把一个块内容点击拖到其他一个方位,在HTML5中,拖放是标准的一部分,任何元素都可以拖放。
现在有一下浏览器支撑拖放
Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支撑拖放。
注释:在 Safari 5.1.2 中不支撑拖放。
下面的例如是一个简单的拖放实例:
首要,为了使元素可拖动,把 draggable 特色设置为 true :拖动什么 - ondragstart 和 setData() 然后,规矩当元素被拖动时,会发生什么。 在上面的例如中,ondragstart 特色调用了一个函数,drag(event),它规矩了被拖动的数据。 dataTransfer.setData() 方法设置被拖数据的数据类型和值: function drag(ev) { ev.dataTransfer.setData("Text",ev.target.id); }
在这个例如中,数据类型是 "Text",值是可拖动元素的 id ("drag1")。
放到何处 - ondragover
ondragover 业务规矩在何处放置被拖动的数据。
默许地,无法将数据/元素放置到其他元素中。假设需设置容许放置,我们有必要阻遏对元素的默许处理方法。
这要通过调用 ondragover 业务的 event.preventDefault() 方法:
event.preventDefault()
进行放置 - ondrop
当放置被拖数据时,会发生 drop 业务。
在上面的例如中,ondrop 特色调用了一个函数,drop(event):
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
代码说明:
调用 preventDefault() 来避免浏览器对数据的默许处理(drop 业务的默许动作是以链接方法翻开)
通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将回来在 setData() 方法中设置为相同类型的任何数据。
被拖数据是被拖元素的 id ("drag1")
把被拖元素追加到放置元素(政策元素)中