HTML5学习笔记

@达内,看达内视频的笔记整理 

* HTML5新表单

   * input新类型

     * email类型
     * url类型
     * tel类型
     * date类型
     * number类型
     * range类型

   * 表单新元素

     * datalist元素 - 类似于select元素
       * datalist元素 - 预定义数据内容(option)
       * 使用<input>元素的list属性
     * progress元素 - 进度条
       * max - 设置最大值
       * value - 设置当前进度
     * meter元素 - 刻度
       * min - 设置最小值
       * max - 设置最大值
       * value - 设置当前值
       * low - 设置低预警值
       * high - 设置高预警值
     * output元素 - 输出

   * 表单新属性

     * placeholder - 给出默认提示
     * autofocus - 自动获取焦点
     * multiple - 允许输入多个值,多个值之间使用","
     * form - 允许表单元素定义在表单外

   * 表单新验证

     * 验证属性
       * required - 验证是否为空
       * pattern - 正则表达式是否匹配
       * min和max - 验证最大/小值
       * minlength和maxlength
         * minlength - 并不是H5的新特性
* maxlength - 不允许输入超过maxlength长度内容
     * 有效状态
       * valid - 验证是否成功
         * true - 表示验证成功
       * valueMissing - 验证是否为空(true)
       * patternMismatch - 验证正则是否匹配
       * typeMismatch - 验证类型是否匹配
       * rangeUnderflow - 验证是否小于min
       * stepMismatch - 验证是否与step匹配

       * customError - setCustomValidity()方法

 * 音视频处理

   * 视频处理

     * 基本内容
       * 目前主流HTML页面视频处理 - Flash技术
       * HTML5提供的视频处理 - <video>元素
     * 使用<video>
       * 提供一种视频格式
         <video src="引入视频文件的路径">
   不好意思,你的浏览器不支持video元素.
</video>
       * 提供多种视频格式
         <video>
   <source src="引入视频文件的路径" />
   <source src="引入视频文件的路径" />
   <source src="引入视频文件的路径" />
</video>
     * <video>元素的属性
       * src - 引入视频文件的路径
       * width和height - 设置当前视频的宽度和高度
       * autoplay - 自动播放
       * controls - 提供控制面板
       * loop - 循环播放
       * poster - 在播放视频前,显示一张图片
       * preload - 预加载
         * auto - 默认值,尽快地加载视频
* none - 不加载(缓存)
* metadata - 只加载除视频以外的基本信息
     * 高级内容
       * 事件
         * play - 当视频播放时被触发
* pause - 当视频暂停时被触发
* ended - 当视频结束播放时被触发
   * 自动播放下一个视频功能
       * 方法
         * play() - 播放视频
* pause() - 暂停视频
       * 属性
         * paused - 判断视频是否暂停
   * Boolean值,true表示暂停,否则播放
* ended - 判断视频是否结束
* duration - 返回当前视频的时长
* currentTime - 返回视频播放的当前位置

   * 音频处理

     * <audio>元素
       * 提供一种音频格式
         <audio src="" controls></audio>
       * 提供多种音频格式
         <audio>
    <source src="" />
    <source src="" />
    <source src="" />
</audio>
     * <audio>元素的属性
       * autoplay
       * loop
       * controls
     * 高级内容
       * 事件
       * 方法
       * 属性

 * Canvas画布

   * 基本内容
     * Canvas的作用 - 为HTML页面提供画布的功能
     * Canvas的效果 - 在画布中绘制图形
     * 注意 - 绘制的图形与HTML页面无关
     * 扩展内容 - 所见非所得(眼见不为实)
   * 使用canvas的步骤
     * 在HTML页面定义<canvas>元素
     * 在javascript代码中
       * 获取<canvas>元素
         * 使用width和height属性 - 没有任何问题
* 使用CSS样式
   * 通过style属性设置 - 绘制图形被拉伸
   * 通过style元素设置 - 按比例放大
       * 创建画布对象 - getContext("2d")
         * 该方法返回2D和3D效果两种画布对象
* 注意
   * 参数必须是"2d"或"3d"
   * 目前只绘制2d效果
       * 使用Canvas提供的API
   * 绘制图形
     * 绘制矩形
       * fillRect(x,y,width,height) - 实心矩形
         * x和y - 绘制矩形的左上角的坐标值
* width和height - 绘制矩形的宽度和高度
       * strokeRect(x,y,width,height) - 空心矩形
       * clearRect(x,y,width,height)
         * 清除指定区域的矩形
     * 设置颜色
       * fillStyle - 设置填充颜色
       * strokeStyle - 设置描边颜色
       * globalAlpha - 设置透明度(0-1)
     * 渐变效果
       * 线型渐变
         * createLinearGradient(x1,y1,x2,y2)
   * x1和y1 - 基准线的起点坐标值
   * x2和y2 - 基准线的终点坐标值
* 基准线
       * 扇形(射线)渐变
         * createRadialGradient(x1,y1,r1,x2,y2,r2)
   * x1,y1 - 第一个基准圆的元素坐标值
   * r1 - 第一个基准圆的半径
   * x2,y2 - 第二个基准圆的元素坐标值
   * r2 - 第二个基准圆的半径
* 两个基准圆
       * 设置渐变颜色
         * addColorStop(position,color)
   * position - 设置渐变颜色的位置(0-1)

   * color - 设置渐变颜色

 * Canvas

   * 绘制文字
     * 方法
       * fillText(text,x,y) - 绘制实心文字
         * text - 绘制的文本内容
* x和y - 绘制文字的坐标值
       * strokeText(text,x,y) - 绘制空心文字
     * 属性
       * font - 类似于CSS中的font属性的作用
       * textAlgin - 水平方向对齐(基准线)
         * left
* center
* right
       * textBaseline - 垂直方向对齐(基准线)
         * top
* middle
* bottom
   * 阴影效果
     * shadowColor - 设置阴影的颜色
     * shadowOffsetX - 设置阴影的水平方向
       * 0 - 没有阴影
       * 负值 - 阴影向左
       * 正值 - 阴影向右
     * shadowOffsetY - 设置阴影的垂直方向
       * 0 - 没有阴影
       * 负值 - 阴影向上
       * 正值 - 阴影向下
     * shadowBlur - 设置阴影的程度
   * 创建路径
     * 标识方法
       * beginPath() - 标识开始创建路径(必要)
       * closePath() - 标识结束创建路径
         * 绘制不完整的圆形时,效果不同
     * 设置方法
       * rect(x,y,width,height)
       * arc(x,y,r,startAngle,endAngle,direction)
     * 绘制方法
       * fill()
       * stroke()
     * 绘制线条(直线、折线和多边形)
       * moveTo(x,y) - 设置起点坐标值
       * lineTo(x,y) - 设置终点(折点)坐标值
   * 设置线条
     * lineWidth - 设置线条宽度,默认值为1
     * lineCap - 设置线条端点的形状
       * round - 圆角
       * butt - 默认值,平直
     * lineJoin - 设置两个线交点的形状
       * round - 圆角
       * miter - 尖角,默认值
       * bevel - 斜角
     * miterLimit - 配合lineJoin=miter使用
   * 绘制图片
     * 绘制图片
       * drawImage(img,x,y)
       * drawImage(img,x,y,width,height)
         * img - 加载的图片
* x和y - 绘制图片的坐标值
* width和height - 绘制图片的宽度和高度
       * 注意 - 加载图片后,绑定onload事件
     * 平铺图片
       var ptn = context.createPattern(img,type);
       * img - 平铺的图片
       * type - 平铺方式
         * repeat - 全方向平铺
* repeat-x - x轴平铺
* repeat-y - y轴平铺
* no-repeat - 不平铺
       context.fillStyle = ptn;
       context.fillRect();
       * 注意 - 上述代码编写onload事件内
     * 切割图片
       context.beginPath();
       context.rect()或arc()
       context.clip();
     * 画布方法
       * scale(x,y) - 缩放
         * x - 表示水平方向的缩放
* y - 表示垂直方向的缩放
       * translate(x,y) - 平移
         * x和y - 相对值(上次定位坐标值)
       * rotate(旋转角度) - 旋转画布
 * Chart.js
   * 作用 - 绘制图表
   * 6种图表
     * 柱状图
     * 饼状图
     * 曲线图
     * 环形图
     * 极地区域图

     * 雷达图

 * SVG

   * 基本内容
     * 概念 - SVG是一种使用XML技术描述二维图形的语言
     * 支持的格式
       * 矢量图
       * 图片
       * 文本
     * SVG文件的扩展名为".svg"
   * SVG与Canvas的区别
     * SVG
       * 不依赖分辨率
       * 可被搜索、压缩或脚本化
       * 适用于大型渲染区域的程序(百度地图等)
       * 不适用于网页游戏
     * Canvas
       * 依赖分辨率
       * 可以以图片形式存在(.png)
       * 适用于网页游戏
       * 不支持事件绑定
   * 设置样式
     * fill - 填充颜色
     * stroke - 描边颜色
     * stroke-width - 描边宽度
   * 绘制图形
     * 绘制矩形 - <rect />
     * 绘制圆形 - <circle />
     * 绘制椭圆 - <ellpise />
     * 绘制直线 - <line />
     * 绘制折线 - <polyline />
     * 绘制多边形 - <polygon />
   * 特效元素
     * 渐变
     * 高斯模糊
 * two.js
   * 基本内容
     * 该JS库支持三种格式
       * svg
       * canvas
       * webgl
     * 特点 - 具有SVG解释器
   * 如何使用
     * HTML页面
       * 引入two.js文件
       * 在页面中定义容器(元素)
         * <svg></svg>
* <canvas></canvas>
* <div></div>(推荐)
     * javascript代码
       * 获取页面中的容器(元素)
       * 创建Two对象,添加到容器中
         var two = new Two(params).appendTo(element);
       * 设置要绘制的图形(API)
       * 绘制方法 - update()
   * 设置样式
     * fill
     * stroke
     * linewidth
   * 绘制方法
     * 绘制矩形
     * 绘制圆形
   * 分组操作
     var group = two.makeGroup(objects);
   * 动画效果
     * update() - 更新
     * play() - 添加动画(循环)

     * pause() - 删除动画

 * 百度地图

   * HTML5中的地理定位
     * 使用Google公司的Map产品(无法使用)
   * 目前实际开发中,非常常见
   * 百度地图
     * 注册百度开发者
     * 创建应用(服务器)
       * IP白名单(0.0.0.0/0)
     * 得到应用秘钥
   * 学习目的
     * 不去学习研究百度地图的逻辑
     * 最主要的目的就是如何使用百度地图
   * 百度地图
     * 提供API帮助文档(类参考)
     * 提供Demo示例代码

 * 拖放(拖拽)API

   * 源元素事件
     * dragstart - 当鼠标开始拖放时被触发
     * drag - 类似于mousemove,表示拖放过程
     * dragend - 当鼠标结束拖放时被触发
   * 目标元素事件
     * dragenter - 第一次进入目标元素时被触发
     * dragover - 进入目标元素时被触发(反复触发效果)
       * 类似于mousemove(在目标元素中)
       * 在该事件的处理函数中,利用event事件对象的preventDefault()
     * drop - 在目标元素中投放源元素时被触发
       * 在默认情况下,该事件不会被触发
         * 原因 - HTML页面默认不允许实现拖放
* 解决 - 阻止HTML页面的默认行为
     * dragleave - 离开目标元素时被触发
   * dataTransfer对象
     * 作用 - 类似于剪切板的功能
       * 存储源元素的数据
       * 提供给目标元素
     * 方法
       * setData(type,data)方法
         * 作用 - 设置(源元素的)数据
* 该方法在源元素事件中使用
       * getData(type)方法
         * 作用 - 获取(源元素的)数据
* 该方法在目标元素事件中使用
       * clearData(type)方法
         * 作用 - 清除(源元素的)数据
* 优点 - 提高性能
   * 实现拖放效果
     * 源元素
       * dragstart事件
         * 利用dataTransfer对象,存储源元素数据
     * 目标元素
       * dragover事件
         event.preventDefault()
       * drop事件
         * 利用dataTransfer对象,获取源元素数据
* 完成拖放的效果逻辑
   * setDragImage()方法
     * 作用 - 修改鼠标拖放过程中跟随的图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值