html5之拖拽(1)

  1 <!DOCTYPE html>
  2 <html>
  3 <head lang="en">
  4     <meta charset="UTF-8">
  5     <title>图像拖动</title>
  6
  7
  8     <style>
  9         body {
 10             margin: 0px;;
 11         }
 12
 13         .container {
 14             background-color: lightcyan;
 15             width: 1000px;
 16             height: 500px;
 17         }
 18
 19         .box {
 20             background-color: lightblue;
 21             width: 400px;
 22             height: 400px;
 23             float: left;
 24             margin: 10px;;
 25         }
 26
 27         #box1 {
 28
 29         }
 30
 31         #box2 {
 32
 33         }
 34     </style>
 35
 36     <script>
 37         //初始化工作
 38         function initLoad() {
 39             var box1, box2, img1;
 40             initElements();
 41
 42             box1.ondragenter = ondragenter;
 43             box2.ondragenter = ondragenter;
 44
 45             box1.ondragover = ondragover;
 46             box2.ondragover = ondragover;
 47
 48             box1.ondrop = ondrop;
 49             box2.ondrop = ondrop;
 50
 51             box1.ondragleave = ondragleave;
 52
 53             img1.ondragstart = ondragstart;
 54             img1.ondragend = function (event) { //结束拖动
 55                 showMsg("end");
 56             }
 57
 58             function ondragenter(event) {
 59                 showMsg("ondragenter   拖动物体进入啦(即一开始拖动进入那一刻)");
 60             }
 61
 62             //物体拖动进入中
 63             function ondragover(event) {
 64                 showMsg("ondragover   有物体拖动在上面(即一直按住左键拖动)");
 65                 event.preventDefault(); //阻止浏览器默认的属性
 66             }
 67
 68             //物体拖动放置时
 69             function ondrop(event) {
 70                 showMsg("ondrop  物体放置时(即松开左键)");
 71                 event.preventDefault();
 72
 73                 //showMsg(event);
 74                 showMsg(event.clientX)
 75                 showMsg(event.clientY)
 76
 77                 //获取该节点id
 78                 var id = event.dataTransfer.getData("dataId");
 79                 var childNode = getElement(id); //获取节点
 80                 event.target.appendChild(childNode);//添加节点
 81             }
 82
 83             //拖动离开
 84             function ondragleave(event) {
 85                 showMsg("ondragleave  离开啦");
 86             }
 87
 88
 89             //图像拖动时
 90             function ondragstart(event) {
 91                 showMsg("图像被拖动中...")
 92                 //设置传递的数据封装
 93                 event.dataTransfer.setData("dataId", event.target.id);
 94             }
 95
 96             //初始化元素
 97             function initElements() {
 98                 showMsg("初始化元素");
 99                 box1 = getElement("box1");
100                 box2 = getElement("box2");
101                 img1 = getElement("img1");
102             }
103
104             //根据id获取元素的简写
105             function getElement(id) {
106                 return document.getElementById(id);
107             }
108
109         }
110
111         //打印信息
112         function showMsg(obj) {
113             console.log(obj);
114         }
115         function showMsg(msg) {
116             console.log(msg);
117         }
118
119
120     </script>
121
122 </head>
123 <body onload="initLoad()">
124
125 <div class="container">
126     <p>这是一个网页上的图像拖动测试</p>
127
128     <div id="box1" class="box"></div>
129     <div id="box2" class="box"></div>
130     <img src="images/html5.png" id="img1" alt="可以拖动我" draggable="true"/><!--img 默认可以拖拽-->
131 </div>
132
133 </body>
134 </html>
时间: 2024-10-21 15:28:23

html5之拖拽(1)的相关文章

HTML5开发 拖拽文件上传

Drag&Drop 拖拽功能的处理 关于HTML5拖拽文件上传,其实国外已经有很多网站有这样的应用,最早推出拖拽上传应用的是 Gmail,它支持标准浏览器下拖拽本地文件到浏览器中作为邮件的附件发送,但其实现在利用HTML5的功能实现,主要借助于新版支持的浏览器来实现,IE还是弱很多. 拖拽上传应用主要使用了以下 HTML5技术: Drag&Drop : HTML5基于拖拽的事件机制.File API : 可以很方便的让 Web 应用访问文件对象,File API 包括FileList.Bl

HTML5之拖拽(兼容IE和非IE)

前世:项目中需要拖动div,然后和某个div进行位置交换,这不是关键,关键是还要保存位置,然后在下次打开的时候按照保存的位置显示.还好本人功力深厚,一下子就想到了用localStorage来保存,事实证明真的很好用哦.保存数据的方法有了,然后开始"探索"如何用html(5)和js来实现拖拽的效果,由于H5给了比较规范的实现方式,所以在Chrome中轻松实现,万恶的IE(很少骂IE)竟然不兼容,NONONONO,心塞,只好用了两种方式分别实现拖拽效果.(其实两种方式内的代码很相似,唯一不

Nodejs express、html5实现拖拽上传

Nodejs express.html5实现拖拽上传 一.前言 文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传.给用户体验带来很大问题.html5开始支持拖拽上传的需要的api.nodejs也是一个最近越来越流行的技术,这也是自己第一次接触nodejs,在nodejs开发中,最常用的开发框架之一是expess,它是一个类似mvc模式的框架.结合html5.nodejs express实现了拖拽上传的功能. 二.基础知识普及 1.No

基于html5可拖拽图片循环滚动切换

分享一款基于html5可拖拽图片循环滚动切换.这是一款支持手机端拖拽切换的网站图片循环滚动特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="site-wrapper"> <section id="section-header" data-coloroverlap="dark"></section> <section id="second-phase&qu

HTML5 鼠标拖拽以及web存储

html5 拖拽: (function(){}())执行匿名函数,要用括号包括起来: 1:用鼠标事件来做拖拽: 2:在HTML5中加入draggable="true",就可以拖拽但是是分成了两个,这个更有效率: ondragstart:拖拽开始: ondrag:拖拽中 ondragend:拖拽结束: ondragenter:进入投放去: ondragover:投放区移动: ondragleave:离开投放区: ondrop:投放区投放:           ondragover会阻止d

HTML5 的拖拽介绍

本文主要介绍与拖拽操作相关的对象及事件信息,但并不涉及太多的源码演示. 一个简单的示例 在html5中要实现拖放操作,相对于以前通过鼠标操作实现,要简单得多,数据安全性也更有保障.只需要以下几步即可. 给被拖拽元素添加draggable属性,如果是文件拖放. 为目标元素添加一个dropzone属性,这一步也不是必须的,可以省略. 在拖拽元素的dragstart中初始化相关的数据信息,主要是DataTransfer对象. 在目标元素的dragover事件中,取消其默认操作. 在目标元素的drop事

[开源应用]利用HTML5+resumableJs拖拽上传大文件

前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性提交所有的内容进内存是不现实的.大文件带来问题还有是否支持断点传输和多文件同时传输. 本文以resumableJs为例,介绍了如何在ASP.NET中实现大文件传输.同时本文利用了Html5的新特性:支持拖拽. 本文的主要技术点在于:如何接收resumableJs的传送内容(官网不太清楚)和如何合并文件,难度并不高. 注:原博客中,此文章为原站点个人代码备份所用,注释不多,如有不懂,请在评论中给出. 效果: ASPX File: <htm

Nodejs express、html5实现拖拽上传(转载)

一.前言 文件上传是一 个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传.给用户体验带来很大问题.html5开始支持拖 拽上传的需要的api.nodejs也是一个最近越来越流行的技术,这也是自己第一次接触nodejs,在nodejs开发中,最常用的开发框架之一是 expess,它是一个类似mvc模式的框架.结合html5.nodejs express实现了拖拽上传的功能. 二.基础知识普及 1.NodeJs基础知识 nodejs简单来说就是一个可

html5的拖拽dragAPI(如果看了API不懂,看看那三个案例就会恍然大悟)

1.拖拽和释放定义: 拖拽:Drag; 释放:Drop; 2.源对象和目标对象: 3.相关API: ondragstart:源对象开始被拖动 ondrag:源对象被拖动的过程中 ondragend:源对象被拖动结束 ondragenter:目标对象被源对象拖动进入 ondragover:目标对象被源对象悬浮在上面 ondragleave:源对象拖动着离开了目标对象 ondrop:源对象拖动着在目标对象上方松手 4.拖动的源对象和目标对象之间的数据传递: 源对象数据保存:e.data.Transf