每天一个JavaScript实例-html5拖拽
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>每天一个JavaScript实例-html5拖拽</title>
- <style>
- #drop{
- width:300px;
- height:200px;
- background-color:#f00;
- padding:5px;
- border:2px solid #000;
- }
- #item{
- width:100px;
- height:100px;
- background-color:#ff0;
- padding:5px;
- margin:20px;
- border:1px solid #000;
- }
- *[draggable=true]{
- -moz-user-select:none;
- -khtml-user-drag:element;
- cursor:move;
- }
- *:-khtml-drag{
- background-color:rgba(238,238,238,0.5);
- }
- </style>
- <script>
- function listenEvent(eventTarget,eventType,eventHandler){
- if(eventTarget.addEventListener){
- eventTarget.addEventListener(eventType,eventHandler,false);
- }else if(eventTarget.attachEvent){
- eventType = "on" + eventType;
- eventTarget.attachEvent(eventType,eventHandler);
- }else{
- eventTarget["on" + eventType] = eventHandler;
- }
- }
- //取消事件
- function cancelEvent (event){
- console.log("取消事件");
- if(event.preventDefault){
- event.preventDefault();
- }else{
- event.returnValue = false;
- }
- }
- //取消传递
- function cancelPropagation(event){
- console.log("取消传递");
- if(event.stopPropagation){
- event.stopPropagation();
- }else{
- event.cancelBubble = true;
- }
- }
- function dragOver(evt){
- console.log("拖拽进入区域");
- if(evt.preventDefault)
- evt.preventDefault();
- evt = evt || window.event;
- evt.dataTransfer.dropEffect = 'copy';
- return false;
- }
- window.onload = function(){
- console.log("程序就绪");
- //console.log(target);
- var item = document.getElementById("item");
- item.setAttribute("draggable","true");
- //console.log(item);
- listenEvent(item,"dragstart",function(evt){
- console.log("拖拽開始");
- evt = evt || window.event;
- evt.dataTransfer.effectAllowed = 'copy';
- evt.dataTransfer.setData("Text",item.id);
- });
- var target = document.getElementById("drop");
- listenEvent(target,"dragenter",cancelEvent);
- listenEvent(target,"dragover",dragOver);
- listenEvent(target,"drop",function(evt){
- console.log("drop");
- cancelPropagation(evt);
- evt = evt || window.event;
- evt.dataTransfer.dropEffect = 'copy';
- var id = evt.dataTransfer.getData("Text");
- target.appendChild(document.getElementById(id));
- });
- };
- </script>
- </head>
- <body>
- <div>
- <p>Drag the small yellow box with hte dash border to the larger red box with the solid border</p>
- </div>
- <div id = "item" draggable = "true">
- </div>
- <div id = "drop">
- </div>
- </body>
- </html>
每天一个JavaScript实例-html5拖拽的更多相关文章
- HTML5拖拽功能中 dataTransfer对象详解
有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- HTML5 拖拽复制功能的实现方法
Internet Explorer 9FirefoxOpera 12ChromeSafari 5 v1.0代码部分 <!DOCTYPE html><html><head& ...
- day25—JavaScript实现文件拖拽上传案例实践
转行学开发,代码100天——2018-04-10 今天记录一个利用JavaScript实现文件拖拽上传到浏览器,后天将文件打开的小案例. 基本功能:1点击添加文件 2 文件拖拽添加 html: < ...
- html5拖拽实现
1.需求 做一个h5正方形的拖拽框 2.分析 使用touchstart,touchmove,touchend这3个事件实现. 需要记录的数据有三组数据,分别是下图的(x0,y0),(x1,y1),(x ...
- html5拖拽
html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 每天一个JavaScript实例-从一个div元素删除一个段落
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 每天一个JavaScript实例-动态省份选择城市
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- POJ3436 ACM Computer Factory 【最大流】
ACM Computer Factory Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5412 Accepted: 1 ...
- C# 它 抽象类和接口
抽象类 C#同意把类和方法声明为abstract,即抽象类和抽象方法.抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的对象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构 ...
- 有没有安全的工作?(99条评论)——结论是没有一劳永逸的工作,要终身学习,IT业刚出道和老手还是有区别的(同样对于新技术,薪资可能是个问题)
作者: 阮一峰 日期: 2015年12月15日 如果你经常使用互联网,可能知道有一种东西叫做Flash. 它是一种软件,用来制作网页游戏.动画,以及视频播放器.只要观看网络视频,基本都会用到它. 七八 ...
- iPhone App开发实战手册学习笔记(9)之设计IOS App的目标
1 前言 如果我们要做一个属于自己的App需要达到那些目标呢,今天就来介绍一下. 2 详述 2.1 关注用户及其需求 你的主要目标永远都是在设计方案之前先想好用户用例.有些开发人员喜欢编写用户故事来确 ...
- VC 绘图技巧--自定义形状图形
自定义形状图形,定义几个点围城的图形,然后进行描边和填充: if (m_memDC.m_hDC!=NULL) { CPoint point[4]; point[0].x=nLeft+(int)(0.1 ...
- Guava学习笔记:EventBus(转)
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和 ...
- Linux Shell 之 Shell中的函数调用
说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总 ...
- 忽然想到:把Mu的源代码一网打尽
那么那些流媒体开发的公司,就不会拒绝我了,真是一举两得.
- Delphi中WebBrowser自动填表模板
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...
- VC调试篇
难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言.不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件. 我以前接触的程序大多是有比较成形的思路和方法,调试起来出 ...