110-html应用

134 阅读2分钟

目录

  • 视频空格控制
  • canvas的loading动画

一、视频空格控制

1.1 回顾

  • 视频的标签

    <video src="视频的地址" controls autoplay multed></video>
    
    • 用js控制视频的播放和暂停:原生domapi

    • 播放:play()

    • 暂停:pause()

    • 当前媒体是否播放状态:paused

      • true:处于暂停
      • false:播放中

1.2 空格实现播放和暂停的控制

  • 原理:给body设置keyup事件,然后判断按下键是否是空格,根据视频的状态进行播放或暂停

  • 判断按键的类型

    • 计算机键盘每个按键都有自己的键码,并且每个键码都不一样。在键盘相关事件中,event事件对象提供了keyCode用于获取当前按键的键码。
    • 键码大全:blog.csdn.net/m0_64590669…
  • 代码:给body设置keyup事件,并判断按键的键码是否为32,从而实现播放和暂停

二、canvas-loading

2.1 回顾canvas

  • canvas是基于JavaScript的一种绘图技术,JavaScript在HTML5中支持canvas。JavaScript提供了大量的绘制图形的api进行使用。目的在于进行几何图形的绘制。

  • canvas主要是由两个部分构成

    • 画布:是指的HTML5新标签<canvas>,该标签充当画布的角色,即给绘图提供空间支持。
    • 画笔:画笔本质是一个JavaScript对象,该对象需要画布标签通过指定api得到。画笔对象提供了大量绘制相关api用于几何图形的绘制
  • 常用api

名称说明
canvas.getContext(‘2d’)画布标签的api,用于获取该画布的对应画笔对象。
画笔对象.arc()用于勾勒一段弧形,即一部分椭圆或园
画笔对象.lineWidth属性,设置画笔的线条宽度,以数字为单位
画笔对象.lineStyle属性,设置画笔的线条颜色,默认black
画笔对象.stroke()将画笔已经勾勒的图形进行实际绘制。画布中有绘制痕迹。
画笔对象.clearRect()清除绘制痕迹。即去除已经绘制的图形cacc
canvas.width指画布的宽度
canvas.height指画布的高度

2.2 loading加载动画实现

  • 思路:利用画笔绘制一段弧形,并利用定时器不断改变绘制弧线的开始和结束角度,从而形成弧线在不断移动的视觉。

  • 代码

    <canvas width="400" height="300"></canvas>
    <script>
      //1. 获取画笔和画布
        var canvas = $("canvas").get(0); //获取原生的dom标签
        var ctx = canvas.getContext("2d"); //画笔对象
        var start = 0;
        var end = Math.PI /2 ;
        //定时器处理
        var timer =   setInterval(() => {
            //去除之前的绘制痕迹
            ctx.clearRect(0,0,canvas.width,canvas.height);
            ctx.beginPath();//开启新的路径,避免直线的出现
            ctx.arc(200, 150, 30, start, end, false);
            // ctx.arc(200, 150, 30, start +Math.PI, end +Math.PI, false);
            // ctx.closePath();
            ctx.lineWidth=3;
            ctx.strokeStyle='red';
            //绘制
            ctx.stroke();
            //2 设置每次绘制的要添加的角度为Math.PI*0.05
            start+=Math.PI *0.05;
            end+= Math.PI *0.05;
        }, 40);
        //关闭
        setTimeout(() => {
            clearInterval(timer);//关闭定时器
            //隐藏canvas标签
            $('canvas').hide();
        }, 3000);
    </script>