目录
第一部分 简介
第1章 HTML5:从文档到应用的转变 3
1.1 探索标记语言:HTML5速览 4
1.1.1 HTML5文档的基本结构 4
1.1.2 使用新的语义元素 6
1.1.3 使用ARIA角色来增强可访问性 8
1.1.4 IE6~IE8的支持情况 9
1.1.5 HTML5所引入的新表单特性 10
1.1.6 进度条、度量器和可折叠内容 12
1.2 标记:附加的Web规范 14
1.2.1 微数据 15
1.2.2 CSS3 16
1.2.3 JavaScript和DOM 17
1.3 HTML5的DOM API 18
1.3.1 Canvas 19
1.3.2 音频与视频 19
1.3.3 拖放功能 20
1.3.4 跨文档通信、服务器端发送的事件以及WebSockets 21
1.3.5 文档编辑 23
1.3.6 Web存储 24
1.3.7 离线Web应用 25
1.4 其他API和规范 26
1.4.1 地理定位API(Geolocation API) 26
1.4.2 索引数据库API(IndexedDB API) 27
1.4.3 文件API、文件阅读器API、文件编辑器API与文件系统API 28
1.4.4 可伸缩矢量图形 29
1.4.5 Web Graphics Library 30
1.5 小结 31
第二部分 基于浏览器的应用
第2章 创建表单:输入小部件、数据绑定以及数据验证 36
2.1 表单的功能概述与所需知识 37
2.2 构建表单用户界面 39
2.2.1 定义表单的基本HTML文档结构 39
2.2.2 使用表单输入类型email和tel,以及输入属性autofocus、required和placeholder 40
2.2.3 使用表单输入属性required 43
2.2.4 使用number输入类型与min、max、data-*输入属性,以及元素来构建具备计算功能的表单 44
2.2.5 使用表单输入类型month和pattern输入属性 47
2.2.6 提交还是保存?由用户来选择——formnovalidate和formaction输入类型 49
2.3 计算金额总计,显示表单输出结果 51
2.3.1 构建计算函数 52
2.3.2 获取data-*属性的值 54
2.4 利用约束验证API来检查表单输入数据 56
2.4.1 利用setCustomValidity方法和ValidationMessage属性创建自定义验证测试和错误消息 57
2.4.2 利用invalid事件来侦测失败的表单验证 59
2.4.3 利用CSS3伪类来设置无效元素的样式 59
2.5 为不支持HTML5相关特性的浏览器提供回退方案 61
2.5.1 利用Modernizr侦测特性并加载外部资源 61
2.5.2 使用polyfill和Modernizr来弥补缺陷 62
2.5.3 不借助约束验证API实现验证 63
2.6 小结 66
第3章 文件编辑和管理:富文本格式、文件存储、拖放 69
3.1 Super HTML5 Editor:应用概述、必备知识以及初始步骤 70
3.1.1 定义HTML文档结构 71
3.1.2 用JavaScript来实现视图导航与状态管理 74
3.2 富文本编辑与地理定位 76
3.2.1 使用designMode使HTML页面可编辑 76
3.2.2 利用execCommand实现富文本编辑控件 78
3.2.3 利用Geolocation API来定位用户当前位置 80
3.3 在本地管理文件:File System API、Quota Management API、File API与File Writer API 82
3.3.1 创建应用文件系统 83
3.3.2 从文件系统中获取文件列表 85
3.3.3 文件的加载、查看、编辑以及删除 86
3.3.4 创建新文件 88
3.3.5 利用File Writer API来保存文件 92
3.4 添加交互性的拖放功能 94
3.4.1 通过拖入操作将文件导入到应用中 94
3.4.2 通过拖出操作将文件从应用导出 95
3.5 小结 96
第4章 传递消息:HTML5的脚本通信技术 98
4.1 服务器发送事件(SSE) 99
4.1.1 一个简单的SSE聊天应用 99
4.1.2 何时使用SSE 108
4.2 使用WebSocket创建一种实时通信Web应用 108
4.2.1 应用概述及关键知识点 109
4.2.2 利用Node.js创建WebSocket 111
4.2.3 构建计划板应用 113
4.3 客户端上的通信 121
4.3.1 利用postMessage实现跨域通信 121
4.3.2 利用跨文档通信组合应用 122
4.4 小结 124
第 5 章 移动应用:客户端存储与离线执行 127
5.1 My Tasks应用的概述、关键知识点及首要步骤 128
5.1.1 定义HTML文档结构 130
5.1.2 利用CSS控制视图可见性 132
5.1.3 利用JavaScript实现视图导航 133
5.2 利用Web Storage API管理数据 134
5.2.1 从localStorage处读取数据 135
5.2.2 将数据存储到localStorage中 136
5.2.3 从localStorage中删除数据 137
5.3 使用IndexedDB来管理数据 139
5.3.1 侦测浏览器对数据库的支持 140
5.3.2 创建并连接到一个IndexedDB数据库,创建一个对象存储及索引 141
5.3.3 利用HTML和JavaScript开发一个动态列表 143
5.3.4 搜索IndexedDB数据库 145
5.3.5 使用IndexedDB或Web SQL,将任务添加到数据库中 148
5.3.6 从IndexedDB数据库中更新与删除数据 150
5.3.7 使用IndexedDB删除整个数据库 151
5.4 借助应用缓存清单,创建可离线使用的Web应用 152
5.4.1 配置Web服务器,以便使用应用缓存清单MIME类型 153
5.4.2 创建一个缓存清单文件 154
5.4.3 自动更新应用 155
5.5 小结 157
第三部分 交互式的图像、媒体及游戏
第 6 章 2D Canvas:底层2D图像渲染 162
6.1 Canvas基础知识 163
6.1.1 设定Canvas绘图环境 163
6.1.2 生成Canvas绘图环境 166
6.2 创建一个Canvas游戏 167
6.2.1 创建游戏引擎的主要部分 168
6.2.2 创建动态的矩形 172
6.2.3 创建弧形与圆形 175
6.2.4 利用路径来创建复杂形状 176
6.3 使Canvas元素动起来 178
6.3.1 使游戏元素动起来 179
6.3.2 碰撞侦测 180
6.3.3 实现键盘、鼠标及触摸控制 182
6.3.4 控制输入需要考虑的一些问题 185
6.4 优化Canvas游戏 186
6.4.1 记录得分与关卡 186
6.4.2 添加游戏开始界面与结束界面 190
6.4.3 借助现成的代码库 192
6.5 小结 193
第 7 章 SVG:响应式浏览器内图像 195
7.1 位图与矢量图形的对比 196
7.2 利用XML构建SVG Aliens游戏 198
7.2.1 在HTML中设置SVG 199
7.2.2 实现简单的形状与文本 202
7.2.3 使用XLink和复杂形状 204
7.3 利用JavaScript添加交互性 207
7.3.1 游戏引擎基本结构和使用界面 209
7.3.2 设计模式、动态对象的创建以及输入方式 211
7.3.3 创建并组织复杂形状 216
7.3.4 维持一个复杂的SVG组 222
7.3.5 SVG与Canvas的对比 228
7.4 小结 230
第 8 章 视频与音频:在浏览器内播放媒体 232
8.1 利用HTML5播放视频 233
8.1.1 应用预览及构建引用所需的必备知识 233
8.1.2 构建播放器的基本架构 234
8.1.3 使用video元素为页面加入视频 236
8.2 利用HTMLMediaElement接口来控制视频 237
8.3 利用source元素指定多种媒体格式 243
8.3.1 通过.currentSrc属性获取视频类型 244
8.3.2 媒体格式的转换 246
8.4 结合用户输入与视频,实现视频标注功能 247
8.4.1 使用canvas元素来播放视频 247
8.4.2 创建自定义的视频播放控件 249
8.4.3 控制播放中的视频 251
8.4.4 实现视频标注功能 256
8.5 小结 259
第 9 章 WebGL:3D应用开发 261
9.1 创建一个WebGL游戏引擎 263
9.1.1 设置引擎布局 264
9.1.2 创建、改变及删除对象的工具 270
9.2 与显卡通信 276
9.2.1 有关显卡的一些基本知识 277
9.2.2 创建3D数据着色器 278
9.2.3 为形状、颜色及维度创建缓冲区 281
9.2.4 在屏幕上显示形状数据 282
9.3 创建Geometry Destroyer 287
9.3.1 创建一个游戏界面及控制对象 288
9.3.2 在3D空间中创建2D形状 291
9.3.3 创建3D形状和粒子 295
9.4 小结 305
附录A HTML5与相关标准 306
附录B HTML5 API简要参考文档 313
附录C 安装PHP和MySQL 328
附录D 计算机网络技术基础 346
附录E 设置Node.js 356
附录F 通道通信 365
附录G 开发工具及库 370
附录H 利用FFmpeg编码 376
附录I HTML未来展望 381
附录J 链接和参考 414
· · · · · · (
收起)