HTML5实战与剖析之原生拖拽(一拖拽历史概述)
提起拖拽,我就想起了在JavaScript培训的时候一个非常好玩的效果,那就是拖拽了。可以用鼠标任意拖拽着一个物体到任何你想去的地方。
最早拥有JavaScript拖拽功能的是IE4浏览器。当时,网页中只有两种对象是可以拖拽的,那就是:图形和某些文字。拖拽图像的时候,把鼠标放在图像上,按住鼠标不放就可以拖拽了。拖拽文字时,要先选中文字,然后可以像拖动图像那样拖拽选中的文字。在IE4中,唯一有效的放置拖拽文字的目标是文本框。到了IE5.5更进一步,让网页中的任何元素都可以拖拽(IE6以上也支持这些功能了)。随着浏览器一点点更新换代,随着IE7IE8以及其他浏览器的诞生,网页中所有东西都可以拖拽了,只不过是通过JavaScript程序来实现的。下面就是没有HTML5的时候,拖拽的实现小例子。
HTML代码
- <div id="div1" style="width:100px; height:100px; background:red; position:absolute;">梦龙小站</div>
JavaScript代码
- window.onload = function(){
- var oDiv = document.getElementById('div1');
- var disX = 0;
- var disY = 0;
- oDiv.onmousedown = function(ev){
- var ev = ev || window.event;
- disX = ev.clientX - oDiv.offsetLeft;
- disY = ev.clientY - oDiv.offsetTop;
- //在IE下,如果选中元素拖拽就会有问题 : IE设置全局捕获:setCapture 释放全局捕获:releaseCapture
- if(oDiv.setCapture){
- oDiv.setCapture();
- }
- document.onmousemove = function(ev){
- var ev = ev || window.event;
- oDiv.style.left = ev.clientX - disX + 'px';
- oDiv.style.top = ev.clientY - disY + 'px';
- };
- document.onmouseup = function(){
- document.onmousemove = null;
- document.onmouseup = null;
- if(oDiv.releaseCapture){
- oDiv.releaseCapture();
- }
- };
- //在标准浏览器下如果拖拽一个空的标签,就会有问题 : return false
- //在标准浏览器下拖拽图片会有问题:return false
- return false;
- };
- };
CSS代码
- li{ width:100px; height:30px; border:1px #000000 solid; margin:20px; list-style:none;}
- #div1{ width:100px; height:100px; background:red; margin:300px;}
直到HTML5的出现。HTML5是以IE为基础制定了拖拽规范。支持原生拖拽的浏览器有:Chrome、Safari 3+和Firefox 3.5+。
HTML5中的拖拽,可以在窗口间、框架间,甚至在应用间进行完美拖拽。浏览器对拖拽的支持为实现这一功能实现了便利。
HTML5实战与剖析之原生拖拽(一)——拖拽历史概述,就为大家介绍到这里了。有了HTML5拖拽,就可以实现很多非常绚丽的效果了。更过有关HTML5的更新敬请关注梦龙小站。
HTML5实战与剖析之原生拖拽(一拖拽历史概述)的更多相关文章
- HTML5实战与剖析之原生拖拽(四可拖动dragable属性和其他成员)
可拖动dragable属性 之前我们已经为大家介绍过几篇有关HTML5中原生拖拽的相关知识了.今天为大家介绍HTML5拖拽中的其他一些小东东,闲话不多说赶快一起看看吧. 在默认情况下,链接.文本和图像 ...
- HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)(转)
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...
- (转)HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...
- HTML5实战与剖析之跨文档消息传递(iframe传递信息)
在来自不同域名的页面间传递消息一般统称为跨文档消息传送,简称XDM.如,www.leemagnum.com域中的页面与位于一个内嵌框架中的http://blog.csdn.net/lee_magnum ...
- HTML5实战与剖析之字符集属性(charset和defaultCharset)
HTML5对字符集属性也进行了更新,其中charset和defaultCharset属性就是HTML5中新添加的字符集属性.有关charset和defaultCharset属性的具体讲解尽在HTML5 ...
- HTML5实战与剖析之媒体元素(6、视频实例)
HTML5中的视频标签和及其模仿视频播放器的效果在一些手机端应用比較多.由于手机端基本上废除了flash的独断.让HTML5当家做主人,所以对视频支持的比較好. 所以今天专门为大家奉上HTML5视频标 ...
- HTML5实战与剖析之媒体元素(3、媒体元素的事件及方法)
HTML5中的媒体元素除了拥有非常多的属性之外,video标签和audio标签还能够出发非常多事件和方法. 这些方法监控着不同的属性的变化,这些变化有可能是媒体播放的结果,也可能是用户操作媒体的结果. ...
- HTML5实战与剖析之媒体元素
随着HTML5的到来,flash在手机端全部不能得到支持,这就使一项以flash制作的音乐播放和视频播放只能用HTML5中的媒体标签video标签和audio标签来制作了.很恰巧的是,移动端对HTML ...
- HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...
随机推荐
- UVA-1635 数学
UVA-1635 题意: 给定n个数a1,a2,a3.....an,依次求出相邻的两个数的和,最后成为一个数,问这个数模m的值与那些最初的数无关 例:a1,a2,a3, m=2 => a1+a2 ...
- .Net并行编程之二:并行循环
本篇内容主要包括: 1.能够转化为并行循环的条件 2.并行For循环的用法:Parallel.For 3.并行ForEach的用法Parallel.ForEach 4.并行LINQ(PLINQ)的用法 ...
- discuz开发,登录次数过多,锁定解决方法
到数据库里的表找到pre_common_failedlogin 和pre_ucenter_failedlogins清空里面的内容即可. truncate table pre_common_failed ...
- SpringCloud(四)服务发现与消费:以ribbon为例
说明: ribbon是spring-cloud中作为服务消费者的一种角色,客户端可以通过它来对服务提供者的服务进行消费, 比如本例中是服务提供者注册到注册中心,服务提供者提供了一个服务接口,返回一个h ...
- Disruptor的使用
..................2015年的第一天................... 本文代码托管在 https://github.com/hupengcool/disruptor-start ...
- 网站开发中很有用的几个 jQuery 地图插件
下面提到的 jQuery 地图插件不仅仅是提供一个简便的方式来安装一个地图,如果你想在它们之间选择一个放到你的网站上,那么它们还有更多的额外选项来提供更多更全面的功能.大部分的 jQuery 地图插件 ...
- 在ASP.NET中备份和还原数据库
昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此, ...
- 【CodeForces】947 C. Perfect Security 异或Trie
[题目]C. Perfect Security [题意]给定长度为n的非负整数数组A和数组B,要求将数组B重排列使得A[i]^B[i]的字典序最小.n<=3*10^5,time=3.5s. [算 ...
- windos下创建软链接,附Linux下创建软链接
用过好多次老是忘记: 写在这里忘了就来看下 Windows下(win7) mklink /D D:\phpStudy\WWW\yii\school\teacher\web\uploads\public ...
- 在Java中,你真的会日期转换吗
1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormat is a concrete class for form ...