<!DOCTYPE HTML>

<html>

<head>

<script type="text/javascript">

function allowDrop(ev){

ev.preventDeafault();

}

function drag(ev){

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

}

function drop(ev){

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

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

ev.preventDefault();

}

</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>

使得一个元素能够拖动

很easy。仅仅须要将一个元素的拖动属性改动为draggable,例如以下:

  1. <img draggable="true" />

怎样拖动 - ondragstart() 和 setData()方法

然后,我们指定当一个元素拖动的时候会运行的操作。

在上面的演示中,ondragstart属性调用了一个方法, drag(event)。这里指定了那个数据被拖动。

dataTransfer.setData()方法设置了数据类型和被拖动的数据:

  1. function drag(ev){
  2. ev.dataTransfer.setData("Text",ev.target.id);
  3. }

在这里样例中,data type是"Text"。数值是被拖动元素的ID。

哪里去放置(drop) - ondragover

ondragover事件指定了拖动的元素能够被放置的位置。

缺省,数据/元素不能被drop到另外的元素。 为了同意drop。你须要先阻止缺省的处理方式。

我们能够调用event.preventDefault()方法。例如以下:

  1. event.preventDefault()

运行放置(drop)

当可拖动的数据被drop的时候。drop事件触发。

在上面的样例中。ondrop属性能够调用一个方法,drop(event):

  1. function drop(ev)
  2. {
  3. var data=ev.dataTransfer.getData("Text");
  4. ev.target.appendChild(document.getElementById(data));
  5. ev.preventDefault();
  6. }

以上代码:

  • 使用dataTransfer.getData("Text")得到被拖动的数据。

    这种方法将会返回setData()方法中设置的不论什么数据。

  • 被拖动的数据是能够拖动元素("drag1")的id
  • 加入可拖动的元素到放置的元素
  • 调用preventDefault()方法来防止默认的浏览器数据处理(例如,打开链接)

版权声明:本文博客原创文章。博客,未经同意,不得转载。

最新文章

  1. 转发 XHTML 和 DOCTYPE 切换(MSDN)
  2. [转载]QQ空间技术架构之深刻揭密
  3. 【Log4j】 log4j.properties 使用
  4. CF 118E Bertown roads 桥
  5. MVC实现省级联动
  6. 动态求区间K大值(权值线段树)
  7. js基础进阶--关于setTimeout的思考
  8. 查询总耗CPU最多与平均耗CPU最多的SQL语句
  9. 作为新手在学习SSM+Easyui过程中遇到一系列问题
  10. Word2vec教程
  11. linux下安装zabbix
  12. 安卓Android基础—第二天
  13. SSM-网站后台管理系统制作(3)---Google的reCaptcha验证码
  14. Shell 编程 (变量和条件测试)
  15. Mac OS安装git
  16. django之python网站开发基础
  17. PyCharm2018专业版激活步骤
  18. 新特性:postgresql的vacuum漫谈
  19. 1月中旬值得一读的10本技术新书(机器学习、Java、大数据等)!
  20. html页面pc显示正常,在手机端适配也可以看整个页面

热门文章

  1. QT在构造函数中退出程序
  2. XML 关键字
  3. 基于visual Studio2013解决C语言竞赛题之1059最大平台
  4. nodejs之防jade
  5. ARC内存使用注意事项
  6. java.io.EOFException解决
  7. Effective C++_笔记_条款09_绝不在构造和析构过程中调用virtual函数
  8. UVA 11464 - Even Parity(枚举方法)
  9. WebBrowser脚本错误的完美解决方案
  10. Delphi与C++的语法区别(六点区别) good