html5drag的简单介绍-成都快上网建站

html5drag的简单介绍

html5 拖动效果怎么在手机上实现

html5 拖动效果在手机上实现方法是调用drag和drop一系列函数实现的。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、红旗网站维护、网站推广。

注意:拖拽源在拖拽操作结束将得到dragend事件对象,不管操作成功与否。

举例:

定义可拖放内容

div id="columns"

div class="column" draggable="true"headerA/header/div

div class="column" draggable="true"headerB/header/div

div class="column" draggable="true"headerC/header/div

/div

2、监听拖动事件

可附加大量不同事件以监听整个拖放过程:

dragstart

drag

dragenter

dragleave

dragover

drop

dragend

a.这里是开始拖拽

function handleDragStart(e) {

this.style.opacity = '0.4';  // this / e.target is the source node.

}

var cols = document.querySelectorAll('#columns .column');

[].forEach.call(cols, function(col) {

col.addEventListener('dragstart', handleDragStart, false);

});

b.dragenter、dragover 和 dragleave 事件处理程序可用于在拖动过程中提供额外的可视化提示。例如,在拖动期间将鼠标悬停在某一列上方时,其边框可能会变成虚线。这样,用户就能知道这些列也是放置的目标区域。

html5drag&drop在拖拽时怎么改变样式

一、前面的话

HTML5提供专门的拖拽与拖放的API,以后实现这类效果就不必乱折腾了。但是,考虑到Opera浏览器似乎对此不感冒,在通用性上有待商榷,所以这里也就简单说一说。

二、相关重点

DataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer。

draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如:

div title="拖拽我" draggable="true"列表1/div

ondragstart 事件:当拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上

ondragenter 事件:当拖曳元素进入目标元素的时候触发的事件,此事件作用在目标元素上

ondragover 事件:拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上

ondrop 事件:被拖拽的元素在目标元素上同时鼠标放开触发的事件,此事件作用在目标元素上

ondragend 事件:当拖拽完成后触发的事件,此事件作用在被拖曳元素上

Event.preventDefault() 方法:阻止默认的些事件方法等执行。在ondragover中一定要执行preventDefault(),否则ondrop事件不会被触发。另外,如果是从其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。此时需要用用document的ondragover事件把它直接干掉。

Event.effectAllowed 属性:就是拖拽的效果。

三、相关实例

为了便于理解上面的粗体的事件啊对象啊什么的,做了个很简单的demo页面。

您可以狠狠地点击这里:HTML5 drag drop删除元素demo

此demo实现的效果是把右侧的列表拖动到左侧的写着果敢的“垃圾箱”三个字的div层上,此列表元素就会从这个星球上消失。如下截图连环画所示:

源代码展示

其中HTML结构如下:

div class="dustbin"br /垃br /圾br /箱/div

div class="dragbox"

div class="draglist" title="拖拽我" draggable="true"列表1/div

div class="draglist" title="拖拽我" draggable="true"列表2/div

div class="draglist" title="拖拽我" draggable="true"列表3/div

div class="draglist" title="拖拽我" draggable="true"列表4/div

div class="draglist" title="拖拽我" draggable="true"列表5/div

div class="draglist" title="拖拽我" draggable="true"列表6/div

/div

div class="dragremind"/div

JS代码如下:

var $ = function(selector) {    /*简单的选择器方法*/

...};

var eleDustbin = $(".dustbin")[0], eleDrags = $(".draglist"), lDrags = eleDrags.length, eleRemind = $(".dragremind")[0], eleDrag = null;

for (var i=0; ilDrags; i+=1) {

eleDrags[i].onselectstart = function() {

 return false;

};

eleDrags[i].ondragstart = function(ev) {        /*拖拽开始*/

 //拖拽效果

 ev.dataTransfer.effectAllowed = "move";

 ev.dataTransfer.setData("text", ev.target.innerHTML);

 ev.dataTransfer.setDragImage(ev.target, 0, 0);

 eleDrag = ev.target;

 return true;

};

eleDrags[i].ondragend = function(ev) {        /*拖拽结束*/

 ev.dataTransfer.clearData("text");

 eleDrag = null;

 return false

};

}

eleDustbin.ondragover = function(ev) {    /*拖拽元素在目标元素头上移动的时候*/

ev.preventDefault();

return true;

};

eleDustbin.ondragenter = function(ev) {    /*拖拽元素进入目标元素头上的时候*/

this.style.color = "#ffffff";

return true;

};

eleDustbin.ondrop = function(ev) {    /*拖拽元素进入目标元素头上,同时鼠标松开的时候*/

if (eleDrag) {

 eleRemind.innerHTML = 'strong"' + eleDrag.innerHTML + '"/strong被扔进了垃圾箱';

 eleDrag.parentNode.removeChild(eleDrag);

}

this.style.color = "#000000";

return false;

};

谁知道HTML5中一个完整的drag&drop流程是什么样的?

一个完整的drag and drop流程通常包含以下几个步骤:

1.设置可拖拽目标.设置属性draggable="true"使元素编程可拖拽对象.

2.监听dragstart设置拖拽数据

3.为拖拽操作设置反馈图标(可选)

4.设置允许的拖放效果,如copy,move,link

5.设置拖放目标,默认情况下浏览器阻止所有的拖放操作,所以需要监听dragenter或者dragover取消浏览器默认行为使元素可拖放.

6.监听drop事件执行所需操作

这些是HTML5的新特性,如果你想了解更有相关的知识,你可以在一个叫做秒秒学的网站查找相关资料。

Html5 的拖拽功能

HTML 5 拖放

HTML5 音频

HTML5 画布

拖放(Drag 和 drop)是 HTML5 标准的组成部分。

拖放

拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

浏览器支持

Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

注释:在 Safari 5.1.2 中不支持拖放。

HTML5 拖放实例

下面的例子是一个简单的拖放实例:

实例

!DOCTYPE HTML

html

head

script type="text/javascript"

function allowDrop(ev)

{

ev.preventDefault();

}

function drag(ev)

{

ev.dataTransfer.setData("Text",ev.target.id);

}

function drop(ev)

{

ev.preventDefault();

var data=ev.dataTransfer.getData("Text");

ev.target.appendChild(document.getElementById(data));

}

/script

/head

body

div id="div1" ondrop="drop(event)"

ondragover="allowDrop(event)"/div

img id="drag1" src="img_logo.gif" draggable="true"

ondragstart="drag(event)" width="336" height="69" /

/body

/html

亲自试一试

它看上去也许有些复杂,不过我们可以分别研究拖放事件的不同部分。

设置元素为可拖放

首先,为了使元素可拖动,把 draggable 属性设置为 true :

img 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")

把被拖元素追加到放置元素(目标元素)中

HTML5如何实现元素拖拽

在拖放的过程中会触发以下事件:

在拖动目标上触发事件 (源元素)

ondragstart - 用户开始拖动元素时触发

ondrag - 元素正在拖动时触发

ondragend - 用户完成元素拖动后触发

释放目标时触发的事件

ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件

ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件

ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件

ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

event对象(以e代替)

e.target

W3Cschool上的解释是:返回触发此事件的元素(事件的目标节点),这个target属性只兼容ie9及以上

e.preventDefault()

取消事件的默认动作。

e.dataTransfer.setData()

设置被拖数据的数据类型和值。

e.dataTransfer.getData()

获得被拖的数据。

请问HTML5中drag&drop触发事件有哪些?能否简单的介绍一下?

在拖动和拖放过程中会涉及到两个对象,一个是被拖动的drag对象,一个是drop对象(拖放容器对象)。 在拖动和拖放这一过程中会发生七大事件。下面是对这七大事件的简单介绍:

事件名称 作用对象 作用对象

Dragstar事件 被拖动的drag对象。 当对象开始拖动时触发。

Drag事件 被拖动的drag对象。 在Drag对象被拖动期间连续触发。

Dragend事件 被拖动的drag对象。 在Drag对象拖动到Drop目标对象上时被触发。

Dragenter事件 drop对象 在Drag对象拖动到Drop目标对象边界时触发。

Dragover事件 drop对象 当Drag对象在Drop目标对象上移动时触发,且会反复的触发该事件。

Dragleave事件 drop对象 Dragleave事件在这个拖动对象离开Drop目标对象的范围时触发。

Drop事件 drop对象 当这个Drag对象在Drop对象上释放鼠标时触发

这些是HTML5的新特性,可以在秒秒学查找相关的资料。


网站标题:html5drag的简单介绍
标题链接:http://kswjz.com/article/dsdddpc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流