H5 API
1.H5新增标签
语义化标签
header
footer
nav
aside
section
<nav>hello</nav>
<div class='nav'>hello</div>
语义化标签
1)代码的可读性提高
2)有利于搜索引擎搜索
2.h5新增表单属性
input
type
email 邮件框
url、number、range、date、month、week、time、datetime、datetime-local
3.自定义属性
属性
核心属性 id、class、style、title...
特有属性 alt、src、href、width、height...
自定义 data-gl='app'
data-*
4.video(视频)
video属性和方法
Video标签提供了很多属性及方法,我们可以直接设定或者是通过js控制视频的显示
读写属性
src、autoplay、preload、poster、loop、controls、width、height
只读属性
networkState、currentSrc、buffered、readyState、volume、muted
方法
play、pause、load、canPlayType
事件
loadstart、progress、suspend、abord、error、emptied、stalled、paly、pause、playing、seeking、seeked、ended、ratechange、volumechange…
5.audio(音频)
audio元素与video类似,是用来播放音频的。其属性方法事件也几乎与video元素一致
<audio src ="/home/charles/media/a.mp3" >您的浏览器不支持audio标签</audio>
6.画布
1)介绍
h5新增的一个重要元素,专门用来绘制图形(图表和其他图像)
<canvas>只是图形的容器,而实际画图形的是js
<canvas></canvas>
2)浏览器的支持
谷歌 4.0+
IE 9.0+
火狐 2.0+
Safari 3.1+
opera 9.0+
3)创建一个画布
<canvas id="canvas" width="500" height="400" style='background-color:red'></canvas>
注意:默认情况下<canvas>元素没有边框和内容,通常需要指定一个id属性,width定义了画布的大小,可以在html中使用多个<canvas>
4)使用js绘制图像
1.获取canvas元素(一个页面中可以有多个)
var canvas = document.getElementById("canvas")
2.获取CanvasRenderingContext2D实例对象,使用实例对象的方法绘制图像
var context = canvas.getContext("2d")
3.调用方法画图
context.fillStyle = 'red'
context.fillRect(0,0,200,100)
=> 绘制一个红色的矩形,fillStyle属性可以是颜色、渐变、图片,默认是#000000(黑色)
fillRect(x,y,width,height)方法定义了矩形当前的填充方式
5)坐标
canvas是一个二维网络,左上角为(0,0)
6)路径
画一条线
moveTo(x,y)定义线条开始坐标
lineTo(x,y)定义线条结束坐标
stroke()沿着当前路径绘制
画圆
beginPath() 开始一个画布中的一条新路径
ctx.arc(x,y,r,start,stop) 用一个中心点和半径,为一个画布的当前子路径添加一条弧线
stroke()
文本
font 定义字体
fillText(text,x,y) 绘制实心文本
strokeText(text,x,y) 绘制空心文本
渐变
渐变可以填充在矩形、圆形、文本、线条等等
两种设置渐变的方式
createLinearGradient(x,y,x1,y1) 创建线条渐变
四个参数分别是渐变色起始坐标x,起始坐标y,结束坐标x,结束坐标y。
createRadialGradient(x,y,r,x1,y1,r1) 创建一个径向渐变
六个参数分别是
起点圆心坐标(x0,y0)
起点圆心半径(r0)
终点圆心坐标(x1,y1)
终点圆心半径(r1)
必须使用两种以上的停止颜色,addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0-1
图像
drawImage(image,x,y)
7.拖拽
可以将一个元素拖拽到另一个位置,任何元素都可以拖拽
1)设置元素为可拖放 true
首先,为了使元素可拖动,把 draggable 属性设置为 true :
<img draggable="true" />
2)拖动什么 - ondragstart 和 setData()
然后,规定当元素被拖动时,会发生什么。
在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。
dataTransfer.setData() 方法设置被拖数据的数据类型和值:
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
在这个例子中,数据类型是 "Text",值是可拖动元素的 id ("drag1")。
3)放到何处 - ondragover
ondragover 事件规定在何处放置被拖动的数据。
默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
这要通过调用 ondragover 事件的 event.preventDefault() 方法:
event.preventDefault()
4)进行放置 - ondrop 和 getData()
当放置被拖数据时,会发生 drop 事件。
在上面的例子中,ondrop 属性调用了一个函数,drop(event):
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
代码解释:
调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
被拖数据是被拖元素的 id ("drag1")
把被拖元素追加到放置元素
8.服务器端环境安装
apache2 web服务器
jdk 运行java环境
mysql 数据库
nodejs 平台
java服务(代码) + 数据(mysql) => 部署到自己的服务器上