第一部分 3
第1章 基本概念 3
1.1 了解HTML5 3
1.1.1 什么是HTML5 3
1.1.2 HTML5新特性 3
1.1.3 HTML5发展趋势 4
1.2 了解JavaScript 4
1.2.1 什么是JavaScript 4
1.2.2 核心(ECMAScript) 5
1.2.3 文档对象模型(DOM) 5
1.2.4 浏览器对象模型(BOM) 7
1.3 搭建开发环境 7
1.3.1 开发环境介绍 8
1.3.2 代码编辑器 8
1.3.3 浏览器 12
1.4 在HTML文档中使用JavaScript 14
1.4.1 新建HTML文档 14
1.4.2 直接嵌入JavaScript 15
1.4.3 嵌入JavaScript脚本文件 17
1.5 小结 18
1.6 习题 18
第2章 编程基础 20
2.1 编程规范 20
2.1.1 注释 20
2.1.2 命名规范 20
2.2 变量 21
2.2.1 变量命名 21
2.2.2 变量声明和赋值 22
2.2.3 变量的作用域 22
2.3 数据类型 23
2.3.1 Undefined类型 24
2.3.2 Null类型 24
2.3.3 Number类型 24
2.3.4 Boolean类型 29
2.3.5 String类型 29
2.3.6 Object类型 30
2.4 运算符与表达式 31
2.4.1 表达式的含义 31
2.4.2 JavaScript中的运算符 31
2.4.3 运算符的优先级 32
2.4.4 运算符的结合性 33
2.4.5 算术运算符 33
2.4.6 关系运算符 37
2.4.7 逻辑运算符 39
2.4.8 条件运算符 41
2.4.9 位操作运算符 42
2.4.10 其他运算符 46
2.5 小结 48
2.6 习题 49
第3章 基本流程控制 50
3.1 if语句 50
3.2 switch语句 50
3.3 while语句 57
3.4 do-while语句 58
3.5 for语句 59
3.6 for-in语句 60
3.7 break和continue语句 61
3.8 小结 63
3.9 习题 64
第4章 函数 65
4.1 什么是函数 65
4.2 函数定义 66
4.3 函数参数 67
4.3.1 形参和实参 67
4.3.2 形参和实参数目 68
4.3.3 arguments对象 70
4.3.4 模拟函数重载 71
4.4 函数调用返回值 72
4.5 递归函数 73
4.6 小结 74
4.7 习题 75
第5章 引用类型 76
5.1 基本类型和引用类型 76
5.1.1 内存保存 76
5.1.2 复制变量值 77
5.2 引用类型 79
5.2.1 Object类型 79
5.2.2 Array类型 81
5.2.3 Function类型 85
5.3 基本数据类型的方法 87
5.3.1 Boolean类型 87
5.3.2 Number类型 88
5.3.3 String类型 89
5.4 Math对象 91
5.5 小结 93
5.6 习题 93
第6章 面向对象编程 96
6.1 概述 96
6.2 this对象 97
6.3 封装 98
6.3.1 构造函数 99
6.3.2 原型方法 101
6.3.3 混合方式 103
6.4 继承 106
6.4.1 对象冒充 106
6.4.2 call()和apply()方法 107
6.4.3 原型链 109
6.4.4 混合方式继承 111
6.5 多态性实现 112
6.5.1 重写父对象方法 112
6.5.2 多态性 113
6.6 小结 115
6.7 习题 115
第二部分 119
第7章 Canvas基本功能 119
7.1 <canvas>元素 119
7.1.1 引入<canvas>元素 120
7.1.2 获取上下文 120
7.2 绘制简单图形 121
7.2.1 绘制直线 121
7.2.2 线条属性 123
7.2.3 闭合图形 126
7.2.4 绘制矩形 127
7.2.5 绘制圆弧 129
7.2.6 贝塞尔曲线 132
7.3 绘制文本 133
7.3.1 绘制文本 133
7.3.2 文本属性 135
7.3.3 测量文本宽度 139
7.4 小结 140
7.5 习题 140
第8章 Canvas高级功能 142
8.1 绘制图像 142
8.2 像素级操作 144
3.2.1 像素对象 144
8.2.2 创建像素对象 145
8.2.3 取得像素对象 146
8.2.4 绘制像素对象 147
8.3 变换 148
8.3.1 平移 148
8.3.2 旋转 149
8.3.3 缩放 150
8.3.4 操作矩阵 152
8.4 填充风格 154
8.4.1 渐变填充 154
8.4.2 图案填充 156
8.5 阴影效果 157
8.6 合成 159
8.7 剪切 160
8.8 状态方法 161
8.9 小结 163
8.10 习题 163
第9章 CVIDrawJS绘图部分 164
9.1 图形对象CVIGraph 164
9.1.1 嵌入引擎脚本 165
9.1.2 创建图形对象的实例 166
9.1.3 几何对象和颜色对象 166
9.2 绘图属性 167
9.2.1 线条属性 167
9.2.2 填充属性 168
9.2.3 全局属性 170
9.3 绘图方法 171
9.4 小结 176
9.5 习题 176
第三部分 179
第10章 预备知识 179
10.1 动画概述 179
10.1.1 setInterval()函数 180
10.1.2 平移动画 181
10.1.3 精灵动画 182
10.2 提高绘图效能 184
10.2.1 预渲染 184
10.2.2 多层画布 186
10.3 消息响应 187
10.3.1 鼠标响应 187
10.3.2 鼠标事件中的属性 189
10.3.3 简单画板 190
10.3.4 键盘响应 192
10.3.5 键盘事件中的属性 193
10.4 设备事件 197
10.4.1 触摸与手势事件 198
10.4.2 方向事件 200
10.5 小结 200
10.6 习题 201
第11章 HTML5动画设计 202
11.1 鱼游动动画设计 202
11.1.1 精灵作平移动画 202
11.1.2 添加上下移动动作 204
11.1.3 面向对象编程实现 205
11.1.4 修改Fish对象 208
11.1.5 添加文字 211
11.2 广告动画 214
11.3 参数约束的动画实例——曲柄滑块结构 217
11.3.1 什么是曲柄滑块结构 217
11.3.2 曲柄滑块结构动画设计思路 218
11.3.3 静态帧的绘制 220
11.3.4 完整动画 221
11.4 小结 223
11.5 习题 224
第12章 HTML5休闲游戏设计 225
12.1 游戏策划 225
12.2 碰撞检测 226
12.2.1 碰撞检测类型 226
12.2.2 碰撞检测与鼠标交互 227
12.2.3 实现拖动效果 229
12.3 捕鱼小游戏设计 233
12.3.1 添加拖动效果 233
12.3.2 效果调整 238
12.3.3 收获鱼儿 242
12.3.4 完善游戏 245
12.4 小结 249
12.5 习题 249
参考文献 250