html5画布、拖放事件和音视频功能介绍

发布时间:2020-05-13 16:19:03 作者:Leah
来源:亿速云 阅读:188

本篇文章主要介绍html5中画布、拖放事件和音视频功能的使用。有一定的参考价值,有需要的朋友可以参考一下,跟随小编一起来看解决方法吧。

一、拖放事件

1.1 设置拖拽

给标签设置一个draggable设置为true, 标签就可以拖拽了

1.2 拖拽事件

1.2.1拖拽元素事件 (事件对象为被拖拽元素)

看实例:

<p draggable="true"><img src="images/225.jpg" alt="" style="width:100px;height: 100px;" ></p>
   <script>
       var  box = document.querySelector("p");
       box.ondragstart = function(){
           console.log("我被拖拽了!");
       }
       box.ondrag = function(){
           console.log("我在被拖拽的过程中");
       }
       box.ondragend = function(){
           console.log("拖拽结束了!");
       }
   </script>

html5画布、拖放事件和音视频功能介绍

1.2.2 目标元素事件 (俗解:意思就是拖拽的元素放在哪里)
1.2.3 even下的 dataTransfer 对象

他是拖住时显示的图形和样式  , 有三个参数:指定的元素(指点的阴影样式),坐标X  坐标Y(x、y是拖拽时鼠标的位置)

小案例:

     #box{margin-left:150px;}
    #box1 img{display: block;width:100px;height:100px;float:left;margin-left:20px;}
      <p id="box"><img src="images/回收站.png" alt=""></p>
    <p id="box1">
    <img src="images/唯美1.jpg">
    <img src="images/唯美2.jpg">
    <img src="images/唯美3.jpg">
    <img src="images/唯美4.jpg">
    </p>
<script type="text/javascript">
    //获取 垃圾箱对象
    var box = document.querySelector("#box");
    //获取图片列表对象
    var imgList = document.querySelectorAll("img");
    //获取图片列表的父元素
    var box1 = document.querySelector("#box1");
    //遍历图片,并且增加拖拽开始事件
    imgList.forEach(function(item,index){
        item.ondragstart = function(event){
            event.dataTransfer.setData("name",index);
        }
    });
    //阻止冒泡
    box.ondragover = function(event){
        event.preventDefault();
    };
    box.ondrop = function(event){
        // 获取拖拽元素的编号
        var index = event.dataTransfer.getData("name");
        box1.removeChild(imgList[index]);
    };
</script>

实例效果图:

html5画布、拖放事件和音视频功能介绍

1.3 外部拖拽文件

files  (获取外部拖拽的文件,返回一个filesList列表)

方法一:readAsDataURL():参数为要读取的文件对象,将文件读取为DataUrl
方法二:Onload()事件函数:当函数文件读取成功完成的时候触发此事件。(this.result用来获取读取到的文件数据,如果是图片,将返回base64格式的图片数据)

小案例:拖拽文件上传:

    #box{width:200px;height:200px;line-height:200px;text-align:center;border:5px dashed #eeee;background:pink;}
     <p id="box">请将图片拖到此区域</p>
    <p id="imgs"></p>
    <script>
       var box = document.querySelector("#box");
       var imgList = document.querySelector("#imgs");
       box.ondragover = function(event){
            event.preventDefault();
       };
       box.ondrop = function(event){
            event.preventDefault();
            // 获取外部拖拽的文件
            var fileList = event.dataTransfer.files;
           for( var i = 0;i < fileList.length; i++){
                if(fileList[i].type.indexOf("image")>-1){
                    var fd = new  FileReader();
                    //读取文件对象
                    fd.readAsDataURL(fileList[i]);
                    fd.onload = function(){
                        //创建一个图片节点
                        var img = document.createElement("img");
                        img.src = this.result;
                        img.width = "200";
                        img.height = "200";
                        imgs.appendChild(img);
                    }
                }
           }
       };
    </script>

html5画布、拖放事件和音视频功能介绍

二、canvas(画布)

2.1 什么是canvas?

2.2 canvas 的应用领域

2.3 canvas 绘图基础

2.3.1 canvas 标签的属性和语法

2.重新设置canvas标签的宽高属性会让画布擦除所有的内容

3.可以给canvas画布设置背景色

2.4 canvas绘图上下文 (context)

    <canvas></canvas>
    <script>
        var cas = document.querySelector("canvas");
        var ctx = cas.getContext("2d");
    </script>

2.5 基本的绘制路径

2.5.1 canvas 坐标系

canvas 的坐标系从最左上角开始(0,0) .X 向右增大,Y向下增大

html5画布、拖放事件和音视频功能介绍

2.5.2 设置绘制起点(moveTo)

2.如果不设置起点,就会使用lineTo 的坐标当做moveTo

2.5.3 绘制直线(lineTo)

绘制第一条直线:

        <canvas width="200" height="200"></canvas>
    <script type="text/javascript">
        //获取canvas 节点
        var cas = document.querySelector("canvas");
        cas.style.border = "1px solid red";
        // 获取canvas 的上下文信息,首先获取一个对象,然后在这个对象里面画画
        var  cts = cas.getContext("2d");
        //起点位置
        cts.moveTo(50, 50);
        // 终点位置
        cts.lineTo(100,100);
        // 开始描边
        cts.stroke();
    </script>

html5画布、拖放事件和音视频功能介绍

2.5.4 路径的开始与闭合

画一个三角形:

       <canvas width="200" height="200"></canvas>
    <script type="text/javascript">
        //获取canvas 节点
        var cas = document.querySelector("canvas");
        cas.style.border = "1px solid red";
        // 获取canvas 的上下文信息,首先获取一个对象,然后在这个对象里面画画
        var  cts = cas.getContext("2d");
        cts.beginPath();
        //起点位置
        cts.moveTo(50, 50);
        // 终点位置
        cts.lineTo(100,100);
        cts.lineTo(200,100);
        cts.lineTo(50,50);
        // 开始描边
        cts.stroke();
        cts.closePath();
    </script>

html5画布、拖放事件和音视频功能介绍

2.5.5  描边(stroke)

推荐阅读:
  1. HTML5 如何实现拖放'N'拖放
  2. HTML5如何实现多个元素的拖放功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

canvas 拖放事件 html5

上一篇:MySQL的slave_exec_mode参数说明及用处

下一篇:layui怎么搭建后台框架?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》