版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《HTML5网页前端设计》教案第5章HTML5拖放API一、教学目标:了解拖放的概念;熟悉拖放事件DragEvent;熟悉DataTransfer对象;掌握拖放HTML元素的方法;掌握拖放本地文件的方法。二、教学重点和难点:重点:熟悉DataTransfer对象;难点:掌握拖放HTML元素和本地文件的方法。三、教学方法与手段:采取互动式教学方法,理论教学使用多媒体投影教室。四、课程简介:本章主要介绍HTML5拖放API的功能与应用。HTML5拖放API可以用于拖拽网页中的元素并放置到页面上的指定区域,也可以直接将本地电脑上的文件拖放到网页中。HTML5拖放API增强了页面友好度,使用该技术可以开发出用户体验良好的人机交互界面。五、教学基本内容:5.1HTML5新增拖放API HTML5拖放API规定了所有元素都可以被拖放。具体来说,HTML5定义的拖放这一行为指的是用户可以使用鼠标左键点击选中允许拖放的元素或文件,在保持鼠标左键按下的情况下可以移动该元素至页面的任意位置,并且在移动到处于具有允许放置状态的元素上释放鼠标左键放置被拖放的元素。其中从鼠标左键按下选中元素,到保持鼠标左键按下并移动该元素的整个过程称为“拖”;将被拖动的元素放置在许可放置的区域上方并释放鼠标左键的行为称为“放”。整个拖放过程增强了人机交互的功能。5.2浏览器支持情况 浏览器EdgeFirefoxChromeSafariOpera支持情况9.0及以上版本4.0及以上版本20及以上版本5.0及以上版本12及以上版本5.3HTML5拖放API的应用 5.3.1DragEvent事件 拖放元素时的一系列动作会触发相关元素的拖放事件DragEvent,该事件继承于鼠标事件MouseEvent。DragEvent包含的常用事件类型如表5-2所示。表5-SEQ表2-\*ARABIC2DragEvent的常用事件一览表事件名称存储模式事件目标解释ondragstart读写模式该事件由被拖拽的元素触发。当用户刚开始拖动元素时触发该事件。ondrag保护模式该事件由被拖拽的元素触发。当元素处于被拖动状态时触发该事件。ondragenter保护模式该事件由被拖拽的元素触发。当被拖动的元素进入到可以被放置下来的有效区域的瞬间触发该事件。ondragleave保护模式该事件由被拖拽的元素触发。当被拖动的元素离开了可以被放置下来的有效区域的瞬间触发该事件。ondragover保护模式该事件由目标区域元素触发。当被拖动的元素处于可以被放置下来的有效区域内时,该事件会不停地被触发。该事件状态在dragenter之后,在dragleave之前。ondrop只读模式该事件由目标区域元素触发。当被拖动的元素被放置在有效的区域时触发该事件。ondragend保护模式该事件由被拖拽的元素触发。当拖动操作结束时激发该事件。例如,在拖动元素的过程中释放鼠标左键或按下键盘上的Esc键均可触发该事件。该事件状态在drop之后。其中只有ondragstart事件为读写模式,ondrop事件为只读模式,其余所有事件均为保护模式状态。在读写模式下既可以写入数据进行传递也可以读取数据;在只读模式下,只允许将数据读取出来,不可以写入新的数据;在保护模式下,当前传递的数据不可以被修改或读取。从用户在元素上点击鼠标左键开始拖拽行为,到将该元素放置到指定的目标区域中的整个拖放生命周期触发的事件按照顺序如下:dragstart->drag->dragenter->dragover->dragleave->drop->dragend5.3.2DataTransfer对象 HTML5拖放API允许在拖放过程中携带一项或多项自定义数据内容。这些数据内容可以使用拖放事件DragEvent中的datatransfer属性进行添加和处理,该属性来源于HTML5中的DataTransfer对象,其中包含的每项数据均可有独立的数据类型。DataTransfer对象的常用属性如表5-3所示。表5-SEQ表2-\*ARABIC3DataTransfer对象的属性一览表属性名称属性值解释dropEffectnonecopymovelink该属性用于获取或重置当前的拖放类型,共有4种取值。effectAllowednonecopycopyLinkcopyMovelinklinkMovemovealluninitialized提供所有允许的拖放类型。typesDOMString[]该属性为只读属性。返回值为字符串数组,包含了所有存入数据的类型。itemsDataTransferItemList对象该属性为只读属性。返回值为DataTransferItemList对象,该对象是以列表的形式保存了所有的存入数据。filesFileList对象该属性为只读属性。如果拖放的是一个或多个本地文件,该属性返回值为文件列表对象。如果拖放过程中没有涉及本地文件,则文件列表为空。 DataTransfer对象的常用方法如表5-4所示。表5-SEQ表2-\*ARABIC4DataTransfer对象的方法一览表方法名称解释getData(format)获取DataTransfer对象中format格式的数据。一般在ondrop事件中使用,获取传递的数据内容。其中format替换成某种数据类型,例如纯文本类型为text/plain。setData(format,data)将数据设置为format格式,并保存在DataTransfer对象中进行传递。一般在ondragstart事件中使用,设置需要传递的数据内容。clearData([format])清除DataTransfer对象中format格式的数据。如果省略参数则表示清除全部数据。setDragImage(image,x,y)设置拖拽元素时所显示的自定义图标。其中image为图片对象,x和y分别指的是图标与鼠标在水平和垂直方向上的距离。5.3.3拖放元素过程 在HTML5页面中实现拖放的主要过程如下:为需要被拖放的元素添加draggable属性,使其允许被拖放;在被拖拽元素的ondragstart事件中初始化需要传递的数据信息;为作为放置区域的元素设置ondragover事件,取消默认操作;为作为放置区域的元素设置ondrop事件,接受并处理传递过来的数据内容;5.3.4自定义拖放图标 使用DataTransfer对象中的setDragImage()方法可以自定义拖拽时显示的图标。其语法格式如下:setDragImage(image,x,y);其中参数image表示Image对象,代表图标的来源。参数x和y分别表示图标与鼠标在水平方向和垂直方向上的距离。该方法一般用于ondragstart事件的回调函数中,表示从拖动动作开始时更改拖放图标。5.3.5自定义拖放行为DataTransfer对象具有effectAllowed和dropEffect属性用于规定拖放行为,当对元素进行拖放时,共有三种常见效果解释如下:copy:表示被拖拽的数据将从它的初始位置复制到可放置区域。move:表示被拖拽的数据将从它的初始位置移动到可放置区域。link:表示被拖拽的数据将从它的初始位置链接一个快捷方式到可放置区域。这三种效果根据组合又可以形成不同的样式要求,不同的拖放行为对应显示的鼠标图标样式各不相同,具体样式由浏览器和操作系统决定。一般可以在ondragstart事件被触发时通过设置effectAlllowed属性值来规定允许进行何种操作。例如:ev.dataTransfer.effectAllowed="move";上述代码表示设置允许的操作为移动,effectAllowed的属性值只能在ondragstart事件中进行设置。effectAllowed属性共有如下9种取值:none:不允许任何操作。copy:只允许复制操作。copyLink:允许复制或者链接。copyMove:允许复制或者移动。link:只允许链接操作。linkMove:允许链接或移动。move:只允许移动操作。all:允许所有(复制、移动或链接)操作。uninitialized:尚未设置effectAllowed属性时的默认值,等同于all。在拖拽元素的过程中,dropEffect属性值可以在dragenter或dragover事件中进行设置。dropEffect属性共有如下4种取值:none:不允许任何操作。copy:该状态下被拖拽的元素将复制一个副本放到指定的放置区域。move:该状态下被拖拽的元素将移动到指定的放置区域,该属性值为默认值。link:该状态下被拖拽的元素与可放置区域之间将创建连接。dropEffect属性的取值会受到effectAllowed属性取值的约束。例如上面示例中设置effectAllowed属性值为move时,dropEffect的属性值也只能设置为move。effectAllowed与dropEffect属性取值的具体对应关系如表5-5所示。表5-SEQ表2-\*ARABIC5effectAllowed与dropEffect属性取值对照表effectAllowed设置的取值dropEffect允许的取值nonenonecopycopycopyLinkcopy或linkcopyMovecopy或movelinklinklinkMovelink或movemovemoveallcopy、link或move任选其一均可uninitialized并且被拖拽的元素为文本框中的内容move或copyuninitialized并且被拖拽对象为普通元素copy或linkuninitialized并且被拖拽对象为带href属性的超链接元素<a>link或copy 5.3.6本地文件的拖放 除了页面上自带的HTML元素外,本地文件也可以使用HTML5拖放API进行拖拽并放置到页面的指定区域中。传递本地文件时无需设置传递的数据内容,直接在放置文件时使用DataTransfer对象的files属性即可获取文件列表,里面包含了所有文件。将本地文件拖放至页面的指定区域,使用DataTransfer对象的files属性将文件相关信息(例如文件名称、修改时间、文件大小等内容)显示在页面上。<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>HTML5拖放API之本地文件拖放</title><style>#fileCheck{width:300px;height:100px;border:1pxdashed;margin:20px;}li{margin:10px;}</style></head><body><h3>HTML5拖放API之本地文件拖放</h3><hr/><divid="fileCheck"ondragover="allowDrop(event)"ondrop="drop(event)">请将文件拖放至此处。</div><divid="status"></div><script>//ondragover事件回调函数functionallowDrop(ev){//解禁当前元素为可放置被拖拽元素的区域ev.preventDefault();}//ondrop事件回调函数functiondrop(ev){//解禁当前元素为可放置被拖拽元素的区域ev.preventDefault();//获取拖拽的文件列表varfiles=ev.dataTransfer.files;//用于记录文件的状态,包括文件名、文件大小、修改时间等varfileStatus;//用于获取单个文件对象varf;//使用for循环遍历所有文件for(vari=0;i<files.length;i++){//获取当前文件对象f=files[i];//获取最近修改文件的日期对象varlastModified=f.lastModifiedDate;//将日期时间显示为纯文本形式varlastModifiedStr=lastModified.toLocaleString();//组合文件相关信息fileStatus+='<li>文件名称:'++'<br>文件类型:'+f.type+'<br>文件大小:'+f.size+'字节<br>修改时间:'+lastModifiedStr+'</li>';}//获取文件状态显示栏对象varstatus=document.getElementById("status");//更新文件信息至显示栏中status.innerHTML='<ul>'+fileStatus+'</ul>';}</script></body></html>5.4实验案例——仿回收站效果的设计与实现背景介绍:在Windows等操作系统中均包含回收站功能,用户可以直接将不需要的文件拖拽并放置到桌面回收站图标上以实现文件删除。功能要求:使用HTML5拖放API相关技术,在网页上实现仿回收站的类似效果。用户通过拖拽可以将页面上的元素放置到回收站中删除。5.5本章小结HTML5新增拖放API可以用于拖拽和放置所有指定的HTML元素。所有HTML元素均可以被设置为可拖放状态,并且可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一化学(化学实验)2026年上学期期中测试卷
- 大学(航海技术)船舶驾驶2026年综合测试题及答案
- 2026年项目管理(进度管控)考题及答案
- 2025年大学护理(脉搏监测框架)试题及答案
- 2026年中职第一学年(服装设计)服装款式图绘制试题及答案
- 深度解析(2026)《GBT 18310.14-2003纤维光学互连器件和无源器件 基本试验和测量程序 第2-14部分试验 最大输入功率》
- 深度解析(2026)《GBT 17950-2000半导体变流器 第6部分使用熔断器保护半导体变流器防止过电流的应用导则》
- 深度解析(2026)《GBT 17550.2-1998识别卡 光记忆卡 线性记录方法 第2部分可访问光区域的尺寸和位置》(2026年)深度解析
- 高精度零件加工技术规范
- 河南经贸职业学院《史学论文写作指导》2025-2026学年第一学期期末试卷
- 2025年餐饮与管理考试题及答案
- 2025事业单位考试公共基础知识测试题及答案
- 安全生产三法一条例两办法
- 室内四害消杀培训
- 中医特色疗法脐灸
- 汽车轮毂项目可行性研究报告
- 雨课堂学堂云在线《中国话剧名作鉴赏(大庆师院 )》单元测试考核答案
- 小型自建房施工方案
- M蛋白血症的护理
- 2024年度知识考核烟草专卖管理师三级试题及答案完整版
- 眉山市乡科级领导干部政治理论水平考试测试题库单选1
评论
0/150
提交评论