拖放

拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

首先,为了使元素可拖动,把 draggable 属性设置为 true

ondragover 事件规定在何处放置被拖动的数据。

当放置被拖数据时,会发生 drop 事件。

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title></title>
   <style type="text/css">
      div{width: 200px;height: 100px;border: 1px solid black;float: left;text-align: center;padding-top: 30px;}
   </style>
</head>
<body>
   <div id="div1"><img id="img" src="w3school_logo_black.gif" draggable="true"></div>
   <div id="div2"></div>

</body>
<script type="text/javascript">
      var div1=document.getElementById("div1");
      var div2=document.getElementById("div2");
      var img=document.getElementById("img");

div1.ondragover=function(e){
        e.preventDefault(); //来避免浏览器对数据的默认处理

}

div1.ondrop=function(){
         div1.appendChild(img);  //将图片添加到DIV1
       }

div2.ondragover=function(e){
         e.preventDefault();   //来避免浏览器对数据的默认处理
    }

div2.ondrop=function(){
        div2.appendChild(img);   //将图片添加到DIV2
 }

</script>
</html>

canvas 元素用于在网页上绘制图形。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
   *{
        padding:0;
        margin:0;
     }
body{
        text-align: center;
       }
#canvas{
         border:1px solid red;
        }
</style>
</head>
<body>
          <h1>测试Canvas</h1>

<canvas id="canvas" width="1000" height="500">不支持Canvas</canvas> //创建一个画布,并设置大小
</body>
<script>

var canvas = document.getElementById("canvas");  //设置画布
          var context = canvas.getContext("2d");   //设置画笔
          drawRect();
  function drawRect(){

for(var i = 0;i < 20;i++){  //循环19次

context.strokeStyle = "rgb("+generateCode(256)+","+generateCode(256)+","+generateCode(256)+")"; //循环设置边框的颜色
                context.strokeRect(500-i*10,250-i*10,10+20*i,10+20*i);   //循环设置矩形的位置和大小
              }

}
function generateCode(num){
            var random = parseInt(Math.random() * num);  //设置一个随机数
             return random;
}
</script>
</html>

htm5拖放和画布的更多相关文章

  1. 面试题<初级>

    INTERVIEW .markdown-body ul pre code { background:red; font-size:40px; } @code-char:"```" ...

  2. 分享第一次使用ProcessOn心得

    最近朋友推荐了我一款在线作图工具ProcessOn,感受使用了几天感觉确实很不错,在这里给大家分享一下! ProcessOn应该算的上是第一款完全免费在线作图工具,之前用过国外有类似的,不过都是付费的 ...

  3. Principle-初步认识(简介)

    Principle官网 探究了一下 . 呃--作出了下边这玩意 做的好的是这样的,瞬间把自己给菜了,给大家看看,设计需要UI功夫啊 把这个用上你的界面就搞基了,图形在水平.垂直上的动态效果(*.*) ...

  4. ADT工具使用详解

    备注:一下内容为本人手工翻译官方文档注解,如有翻译不到位的地方,欢迎批评指正; ADT(Android开发工具)是Eclipse的插件,它提供了一套与Eclipse IDE集成的工具.它可以让您访问许 ...

  5. AxureRP8实战手册

    基础操作篇 本篇包含56种常见的基础操作,初学者应在掌握本篇内容后再进行实战案例篇的学习,以免产生学习障碍.同时,建议具备一定基础的读者学习本篇中相对生疏的内容,并加以掌握. 第1章 使用元件 本文目 ...

  6. Orange的数据挖掘工具入门使用

    Orange的数据挖掘工具入门使用 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach ...

  7. IOS开发入门实例

    关于如何创建第一个 iOS 应用 本篇“第一个 iOS 应用”教程将向你介绍 iOS 应用开发中的“三个T”: Tools(工具)如何利用 Xcode 创建和管理工程. Technologies(技术 ...

  8. HTML5 课程

    http://www.w3school.com.cn/html5/html_5_geolocation.asp HTML5 教程 HTML5 教程 HTML5 简单介绍 HTML5 视频 HTML5 ...

  9. 不知如何创建UML电路图?看看本文

    Visual Paradigm是包含设计共享.线框图和数据库设计新特性的企业项目设计工具.现在你只需要这样单独的一款模型软件 Visual Paradigm就可以完成用UML设计软件,用BPMN去执行 ...

随机推荐

  1. kafka的高可用和一致性探究

    一.kafka基础 本篇文章讨论的kafka版本是目前最新版 0.10.1.0. 1.1 kafka种的KafkaController 所有broker会通过ZooKeeper选举出一个作为Kafka ...

  2. js:不是空字符串的空字符串引起的bug

    今天在用js的时候,使用了两段完全相同的代码,可是一个报错,一个好好的 代码如下: <script type="text/javascript">    console ...

  3. ASP.NET Core 菜鸟之路:从Startup.cs说起

    1.前言 本文主要是以Visual Studio 2017 默认的 WebApi 模板作为基架,基于Asp .Net Core 1.0,本文面向的是初学者,如果你有 ASP.NET Core 相关实践 ...

  4. chrome主页被篡改 成hao123

    应该是开了个从流氓网站下的蓝灯,然后发现主页被篡改 尝试chrome设置修改无效,应该是快捷方式被改了 系统 win10 1.打开对应的下面两个地址,找到chrome的快捷方式,右键属性 C:\Use ...

  5. 无阻塞加载和defer、async

    无阻塞加载 把js放在head里,浏览器是怎么去执行它的呢,是按顺序加载还是并行加载呢?在旧的浏览器下,都是按照先后顺序来加载的,这就保证了加载的js依赖不会发生问题.但是少部分新的浏览器已经开始允许 ...

  6. python 计算两个日期相差多少个月

    近期,由于业务需要计算两个日期之前相差多少个月.我在网上找了很久,结果发现万能的python,居然没有一个模块计算两个日期的月数,像Java.C#之类的高级语言,都会有(date1-date2).mo ...

  7. Angular Route导航

    我们用Angular cli创建带有路由的新项目 ng new router --routing Angular Routes API文档 Angular的文档中有详细的解释: 1)https://a ...

  8. 用NIO实现http协议

    先来看一下本篇博文的目录: 一:简介Nio 二:Nio的好处 三:关于http协议 四:代码实现 五:总结 一:简介Nio 我们都知道io流,那么NIO是什么呢?本篇博文将会带你一探NIO,NIO的全 ...

  9. Struts2结合Ajax实现登录

    前言:Struts2作为一款优秀的MVC框架,和Ajax结合在一起,用户就会有良好的体验,本篇博文我们来模拟一个简单的登录操作,实现Ajax的异步请求,其中Struts2进行的是链接处理,Action ...

  10. 移动应用/APP的测试流程及方法

    1. APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先 ...