目的:实现拖动目标并放置到指定区域。

 

使元素可拖动,涉及到元素的全局属性draggable

<img draggable="true" />

即img元素设置为可拖动。

浏览HTML的Mouse事件属性,需要为img分配ondragstart属性,为div分配ondropondragover属性。

首先需要确定拖动对象,即需要获取被drag元素的数据,这里用到dataTransfer对象的setData方法,设被调用方法名称为drag(ev),则该方法定义如下:

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

当draggable数据被drop时,首先drop区域div要允许img被放在此处,这是要用ondragover属性调用一个function,用到方法preventDefault(),设function名为allowDrop(ev):

function allowDrop(ev){
ev.preventDefault();
}

当被拖动元素被drop时,执行drop事件。用到body对象的appendChild方法(即“附加行为”)。用getData()获取“附加”到drop目的地的元素数据,传给ondrop(),此处的数据即先前由setData()获得的img元素数据。设方法为drop:

function drop(ev){
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
ev.preventDefault();
alert("233");
}

1.dataTransfer对象的getData方法,获取img数据

2.target对象的appendChild方法,附加新获取的img数据到原div元素数据

3.document对象的getElementById方法,

完整代码:

<p>move the picture to the div</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)" ></div>

<img id="drag1" src="http://www.gbtags.com/gb/laitu/100x100&text=GBtags/efb73e/FFFFFF" draggable="true" ondragstart="drag(event)"></img>

<style type="text/css">
div
{ width:100px;
height:100px;
padding:10px;
border:1px solid #CCC;}
</style> <script>function drag(ev){
ev.dataTransfer.setData("Text",ev.target.id);
} function allowDrop(ev){
ev.preventDefault();
} function drop(ev){
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
ev.preventDefault();
alert('Move Successfully!');
}</script>

资料:http://www.jb51.net/shouce/dhtml/objects/DD.html

【html】学习记录-拖放(drag and drop)的更多相关文章

  1. HTML5 之拖放(drag与drop)

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

  2. HTML 5 拖放(Drag 和drop)

    浏览器支持 Internet Explorer 9.Firefox.Opera 12.Chrome 以及 Safari 5. 1.把标签 draggable 属性设置为 true. 2.向标签添加on ...

  3. Android开发者指南-用户界面-拖放-Drag and Drop[原创译文]

      英文原文:http://developer.android.com/guide/topics/ui/drag-drop.html 版本:Android 4.0 r1 译者注:黄色底色为未决译文 快 ...

  4. HTML5 拖放---drag和drop

    拖放四步走:第一步:设置元素可拖放,即把 draggable属性设置为 true:  例:<div id="div" draggable="true"&g ...

  5. 拖放(Drag和Drop)--html5

    拖放,就是抓取一个对象后拖放到另一个位置.很常用的一个功能,在还没有html5的时候,我们实现这个功能,通常会用大量的js代码,再利用mousemove,mouseup等鼠标事件来实现,总的来说比较麻 ...

  6. 在Blazor中实现拖放(drag and drop)

    前言 我在实现一个含有待办列表功能的页面时,发现了一个好看的设计,它将待办分为--"待办","正在进行",和"已完成"三种状态,并且将待办通 ...

  7. HTML5 拖放(Drag 和 Drop)功能开发——基础实战

    随着HTML5的普及度越来越高,现在写代码也遇到一些了,经过同事的点播开展了一次Dojo活动用以技术交流,我也乘此机会将HTML5的拖放功能整理了一下. 简介 拖拽(Drag/Drop)是个非常普遍的 ...

  8. HTML5学习笔记 拖放

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

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

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

随机推荐

  1. Java设计模式之单例

    一.Java中的单例: 特点: ① 单例类只有一个实例 ② 单例类必须自己创建自己唯一实例 ③ 单例类必须给所有其他对象提供这一实例 二.两种模式: ①懒汉式单例<线程不安全> 在类加载时 ...

  2. Spring---BeanFactory

    Spring---BeanFactory   BeanFactroy是一个Spring容器,用于创建,配置,管理bean,bean之间的依赖关系也有BeanFactory负责维护: BeanFacto ...

  3. spring的@Transactional

    在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务.Spring默认情况下会对运行期例外(RunTimeExcept ...

  4. Python-11-RabbitMQ、Redis使用

    RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(M ...

  5. MATLAB常用字符串函数之二

    1,lower和upper lower: 将包含的全部字母转换为小写. upper: 将包含的全部字母转化为大写. 实例一: >>str='Sophia is a good girl.'; ...

  6. C# 窗体缩放的时候同步改变控件的大小和字体

    最新在写个小程序,需要窗体填满各种尺寸的显示器,同时需要同步缩放控件的大小.于是就写了个类,简单的调用一下即可解决问题. 这个类可以同步缩放控件的位置,宽度高度,字体大小. 使用的时候在FormLoa ...

  7. Macbook被格式化之后

    macbook不小心被手贱格式化了,开机显示一个大问号. 于是查询得到恢复方式是使用command+R. 照做了,试了好几次,那个地球还是卡住不动的.都没有提示让我输入wifi密码. 于是又查了一下, ...

  8. 分享一个自制的 .net线程池

    扯淡 由于项目需求,需要开发一些程序去爬取一些网站的信息,算是小爬虫程序吧.爬网页这东西是要经过网络传输,如果程序运行起来串行执行请求爬取,会很慢,我想没人会这样做.为了提高爬取效率,必须使用多线程并 ...

  9. UML——在Visual Studio 2013/2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  10. .Net Core Linux centos7行—.net core json 配置文件

    .net core 对配置系统做出了大幅度更新,不在局限于之前的*.xml配置方式.现在支持json,xml,ini,in memory,环境变量等等.毫无疑问的是,现在的json配置文件是.net ...