Professional Documents
Culture Documents
html5(上)
1)语义化标签
2)增强型表单
3)视频和音频
4)canvas绘图
5)svg绘图
6)Geolocation对象 地理定位
7)拖放API
8)Web Worker
9)Web Storage
1)语义化标签
-标签 描述
定义文档头部的区域
定义文档尾部的区域
定义文档的导航
定义文档中的节(区段)
定义页面独立的内容区域
定义页面的侧边内容
详情 用于描述文档或文档某个部分的细节
被details元素包含时作为details元素的标题
定义对话框,比如提示框
2)增强型表单
拥有多个input输入类型,提供了更好的输入控制和验证
-输入类型 描述
color 用于选取颜色
date 用一个日期选择器选取日期
datetime 选择一个日期(UTC时间)
datetime-local 选择一个日期和时间(无时区)
email 包含e-mail地址的输入域
month 选择一个月份
number 数值的输入域
range 一定范围内数字值的输入域
search 用于搜索域
tel 定义输入电话号码字段
time 选择一个时间
url url地址的输入域
week 选择周和年
html5也新增以下表单元素:
-表单元素 描述
元素规定输入域的选项列表,使用 元素的list属性与
用于验证用户,标签规定用于表单的密钥对生成器字段
用于不同类型的输出,比如计算或脚本输出
html5新增的表单属性:
-表单属性 描述
placehoder属性 输入框默认值,在用户输入值时消失
required属性 是一个boolean属性。要求填写的输入域不能为空
min和max属性 设置元素最小值和最大值
step属性 为输入域规定合法的数字间隔
autofocus属性 是一个boolean属性。规定在页面加载时,域自动的获得焦点
3)视频和音频
html5提供了播放音频文件的标准,即使用元素
<audio controls>
您的浏览器不支持audio元素
</audio>
controls属性提供添加播放、暂停和音量控件
在之间你需要插入浏览器不支持audio元素的提示文本。元素允许多个元素,可以链接不同的有音频文件,浏览器将使用
第一个支持的音频文件
目前,元素支持三种音频格式文件:MP3,Wav和Ogg
html规定了播放视频文件的标准,即使用
元素
</video>
controls属性提供添加播放、暂停和音量控件,也可以使用dom操作来控制视频的播放暂停,如play()和pause()方法。
同时video元素也提供了width和height属性控制视频的尺寸。如果设置了高度和宽度,所需的视频空间会在页面加载时保
留。如果没有设置高度和宽度,浏览器不知道视频大小,那么浏览器就不能在加载时保留特定的空间,页面就会根据原始
视频的大小而改变。
video元素支持多个source元素。source元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式(MP4、
WebM和Ogg)
4)canvas绘图
标签只是图形容器,必须使用脚本来绘图
Canvas-图形
1.创建一个画布,一个画布在网页上是一个矩形框,通过
标签通常要指定一个id属性(脚本中经常要使用),width和height属性定义画布的大小,使用style属性来添加边框。你
可以在页面中使用多个
2.使用Javascript来绘制图像,canvas元素本身是没有绘图能力的。所有的绘制工作必须在Javascript内部完成。
<script>
var c = document.getElementById('myCanvas');
var ctx = c.getContext("2d");
ctx.fillstyle = "#FF0000";
ctx.fill
</script>
Canvas-路径
canvas之路径绘制 : https://segmentfault.com/a/1190000010431979
非零环绕填充规则 :https://blog.csdn.net/yellowmushroom/article/details/89430009
Canvas-文本
使用canvas绘制文本,重要的属性和方法如下:
font - 定义字体
fontText(text,x,y)- 在canvas上绘制实心的文本
strokeText(text,x,y)- 在canvas上绘制空心的文本
Canvas-渐变
有两种不同的方式来设置canvas渐变:
1. createLinearGradient(x1,y1,x2,y2) 创建线性渐变
接受四个参数,分别表示渐变的起点(x1,y1)与终点(x2,y2)
2. createRadialGradient(x1,y1,r1,x2,y2,r2)创建一个径向/圆渐变
接受六个参数,以(x1,y1)为原点,r1为半径的起始圆和以(x2,y2)为原点,r2为半径的终点圆
径向渐变详解 :https://www.cnblogs.com/-nothing-/p/5039537.html
上色:
gradient.addColorStop(offset,color)
offset参数:必须是0.0与1.0之间的数值,表示渐变中颜色所在的位置
color参数:必须是一个有效的CSS颜色值
// 可以把线性或者径向的渐变对象赋给图形的fillStyle属性和strokeStyle属性
// 渐变可以填充在矩形、圆形、线条、文本等等各种形状
// 使用渐变对象时必须使用两种或两种以上的停止颜色
Canvas-图像
把图像放置到画布上,用context.drawImage();
有下列三种方法(必须在图片下载后才可以使用):
1.context.drawImage(image,x,y) 把图像绘制到指定的坐标
2.context.drawImage(image,x,y,w,h) 把图像绘制到指定的坐标并设置宽高
5)svg绘图
6)Geolocation对象 地理定位
https://blog.csdn.net/yexudengzhidao/article/details/55001257
地理位置定位原理介绍:
地理位置的定位目前有以下几种方式: GPS,IP地址,Wifi(国内基本不用),GSM/CDMA基站的方式。
HTML5地理位置定位的实现:
1. 实现基于浏览器(无需后端支持)获取用户的地理位置技术。
2. 精确定位用于的地理位置(精度最高达10米之内,依赖设备)。
3. 可持续追踪用户的地理位置
4. 与Google Map , Baidu Map 交互呈现地理位置。
检查浏览器是否支持:
if (navigator.geolocation) {
console.log("浏览器支持!");
}
else {
console.log("浏览器不支持!");
Geolocation API存在于navigator对象中,只包含3个办法:
getCurrentPosition //获取当前位置,只能获取一次,除非再次打开web应用。
watchPosition //实时监视位置
clearWatch //清除监视
getCurrentPosition(success,error,option)方法最多可以有三个参数:
第一个参数是成功获取位置信息的回调函数,它是方法唯一必须的参数
第二个参数用于捕获获取位置信息出错的情况
第三个参数是配置项
7)拖放API
在 HTML5 中,拖放是标准的一部分,即抓取对象以后拖到另一个位置,任何元素都能够拖放。
源对象可触发事件:
dragstart:拖动开始
drag:拖动中
dragend:拖动结束
目标对象可触发事件:
dragenter:拖动着进入
dragover:拖动着悬停
dragleave:拖动着离开
drop:释放
dataTransfer:用于数据传递的“拖拉机”对象;
在拖动源对象事件中使用e.dataTransfer属性保存数据:
event.dataTransfer.setData( k, v )
在拖动目标对象事件中使用e.dataTransfer属性读取数据:
为js创造多线程环境,允许主线程创造worker线程
阮一峰web worker:http://www.ruanyifeng.com/blog/2018/07/web-worker.html
限制:
3.通信限制,Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。
基本用法:
检测浏览器是否支持
if(typeof(Worker)!=="undefined")
else
创建web worker文件
创建web worker对象
if(typeof(w)=="undefined"){
w = new Worker("demo_workers.js");
接受worker发送的消息
w.onmessage=function(event){
document.getElementById("result").innerHTML = event.data;
};
关闭worker
// 主线程
worker.terminate();
// Worker 线程
self.close();
9)Web Storage
些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能。数据以 键/
值 对存在, web网页的数据只允许该网页访问使用。
localStorage
生命周期是永久性的。假若使用localStorage存储数据,即使关闭浏览器,也不会让数据消失,除非主动的去删除数据,
使用的方法如上所示。localStorage有length属性,可以查看其有多少条记录的数据。
storage = window.localStorage;
storage.removeItem("name"); //调用removeItem方法,移除数据
alert(storage.getItem("name")); //调用getItem方法,弹框显示 name 为 null
sessionStorage
生命周期是在浏览器关闭前。也就是说,在整个浏览器未关闭前,其数据一直都是存在的。sessionStorage也有length属
性。需要注意的有以下几点:
页面刷新不会消除数据;
只有在当前页面打开的链接,才可以访sessionStorage的数据;
使用window.open打开页面和改变localtion.href方式都可以获取到sessionStorage内部的数据;
常用API(以localStorage为例):
保存数据:localStorage.setItem(key,value);
读取数据:localStorage.getItem(key);
删除单个数据:localStorage.removeItem(key);
删除所有数据:localStorage.clear();
得到某个索引的key:localStorage.key(index);