l元素可以用于拖拽必须设置draggable="true"属性,img和a标签除外,她们两个默认就可以被拖拽
想做拖拽处理,就需要在Dom元素上监听拖放的事件:dragstart,drag,dragenter,dragover,dragleve,drop,dragend

在文档中,默认document最先触发以上事件,而默认的处理是阻止页面元素的变化,想人为的控制拖拽的元素的变化需要我们改动代码。所有必需去掉document的默认处理

document.ondragover = function(e) {

e.preventDefault();

};

document.ondrop = function (e) {

e.preventDefault();

};

拖拽事件event中属性:dataTransfer是传递数据的关键。使用dataTransfer的setData(“Text",data)方法,把要拖拽的数据放到dataTransfer中,在拖拽完毕的事件中,再从中取出数据,用方法:getData("text/plain");

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<style>
#d1, #d2 {
width:200px;
height:200px; border:1px solid gray;
float:left;
margin-right:20px;
} </style>
<script>
function drag(e) {
e.dataTransfer.setData("Text", e.target.id);
} function dragover(e) {
e.preventDefault();
} function move1(e) {
e.preventDefault();
var id = e.dataTransfer.getData("Text");
e.target.appendChild(document.getElementById(id));
}
</script>
</head>
<body>
<div id="d1" ondragover="dragover(event)" ondrop="move1(event)">
<img id="i1" src="ts.gif" draggable="true" ondragstart="drag(event)" /><br />
<a id="Img1" draggable="true" ondragstart="drag(event)">把我也拖走吧!</a>
</div> <div id="d2" ondragover="dragover(event)" ondrop="move1(event)"></div>
</body>
</html>

HTML5学习之拖放(十)的更多相关文章

  1. HTML5学习笔记 拖放

    拖放(Drag和drop)是html5标准的组成部分 拖放是一种常见的特性,即抓取对象以后拖到另一个位置 在html5中,拖放是标准一部分,任何元素都能够拖放. 设置元素为可拖放 首先,为了使元素可拖 ...

  2. HTML5 学习05—— 拖放(Drag 和 Drop)

    拖放(Drag 和 drop)是 HTML5 标准的组成部分.即抓取对象以后拖到另一个位置. 例:将w3cschool图标拖动到矩形框中. <script> function allowD ...

  3. HTML5学习笔记(十九):Lambda和Promise

    Lambda 在ES6的标准中称为Arrow Function(箭头函数).下面是一个简单的箭头函数: x => x * x 上面的定义和下面的代码定义效果一样: function (x) { ...

  4. HTML5学习笔记(十六):原型、类和继承【JS核心知识点】

    理解原型 在JavaScript中,只要声明了一个函数,就会为该函数创建一个名为prototype的属性,该属性指向当前函数的原型对象. 而函数的原型对象有一个constructor属性,该属性指向刚 ...

  5. HTML5学习笔记(十八):闭包

    高阶函数 JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,也可以返回一个函数,这种函数就称之为高阶函数. 函数作为参 ...

  6. HTML5学习笔记(十五):方法

    在一个对象中绑定函数,称为这个对象的方法. 在JavaScript中,对象的定义是这样的: var xiaoming = { name: '小明', birth: 1990 }; 但是,如果我们给xi ...

  7. HTML5学习笔记(十四):变量作用域

    在JavaScript中,用var申明的变量实际上是有作用域的. 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: function foo() { var x ...

  8. HTML5学习笔记(十二):JavaScript新增Map和Set

    Map JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实际上Nu ...

  9. HTML5学习笔记(十):CSS常用操作

    对齐 在 CSS 中,可以使用多种属性来水平对齐元素. 水平对齐 使用 margin 属性来水平对齐,可通过将左和右外边距设置为 "auto",来对齐块元素. 把左和右外边距设置为 ...

随机推荐

  1. SNMP协议入门

    SNMP协议入门 1.引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的所有可被查询 ...

  2. hiho #1326 : 有序01字符串

    #1326 : 有序01字符串 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于一个01字符串,你每次可以将一个0修改成1,或者将一个1修改成0.那么,你最少需要修改 ...

  3. 30 GroupSock(Port)——live555源码阅读(四)网络

    30 GroupSock(Port)——live555源码阅读(四)网络 30 GroupSock(Port)——live555源码阅读(四)网络 简介 Port类的定义 Port的构造与全局的 &l ...

  4. 14 BasicHashTable基本哈希表类(一)——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  5. 关于mysql安全

    修改root用户密码: update mysql.user set password=password('new_passwd') where user='root'; flush privilege ...

  6. Python自动化之配置Python模块国内镜像

    Linux环境 在~/.pip/pip.conf文件中添加或修改 [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [instal ...

  7. python self introspection

    http://www.ibm.com/developerworks/cn/linux/l-pyint/index1.html

  8. Sublime text2 插件推荐

    HTML-CSS-JS Prettify:  前端插件,使用 ctrl+shift+h 格式化代码

  9. 【Networking】go get 失败,代理配置

    推荐VPN: https://vpnso.com/   如果还是有问题,比如: 重新编译Git,使用openssl替换gnutls,方法如下: http://askubuntu.com/questio ...

  10. java切换VPN让你像幽灵一样出现在全国各地

    在很多情况下,有些网络应用的需求会要求模拟人在不同地区访问网站和应用.因而切换IP也就应运而生了,然而IP作为一种稀缺资源不是随便可以获得的.因而会想到应用程序切换VPN来达到全国不同地区访问网络.因 ...