- 博客(0)
- 资源 (19)
- 收藏
- 关注
跨终端Web.pdf
跨终端Web_s13585914-徐凯(鬼道,天猫前端)
[作 者]徐凯 著
[出版发行] 北京:电子工业出版社 , 2014.06
[ISBN号]978-7-121-23345-6
[页 数] 225
[原书定价]55.00
[主题词]网页制作工具
[中图法分类号]TP393.092
【内容提要】 移动互联网不可阻挡地进入了我们的技术视野,本书以跨终端方案对比为起点,阐述了实现跨终端Web的多重途径,破除“唯MediaQuery论”;引入移动优先的概念,丰富跨终端Web的内核。实现层面,我们从Web前端基础和移动互联网Web基础入手、逐步讲解了实现跨终端Web所需要的各类技术基础设施,这包括:测试基准、终端检测、前后端接口、跨终端定位、预览等;这个过程中笔者先后在百度和天猫跨终端上的开发实践...
2016-06-16
汇编语言.chm
《汇编语言》(Assembly Language)是计算机专业中一门重要的基础课程,是一种面向机器的低级语言。它依赖于硬件,能通过巧妙的程序设计充分发挥硬件的潜力。汇编语言程序产生的代码运行效率高。因此,到目前为止,许多软件系统(例如操作系统等)的核心部分仍然用汇编语言来编写。
计算机专业所培养的学生,不应仅仅满足于利用他人已开发出来的软件和软件工具来解决实际问题,还应具备有分析、研究原有软件系统,改进、完善、提高原有系统功能供广大用户使用的能力。汇编语言程序设计将使学生受到更严密、更系统的程序设计及其思维方法的训练,为深入分析、研究、开发新的软件系统打下良好的训练基础。
本课程的教学目的是使学生进一步了解计算机的基本组成,汇编指令的格式和使用方法,以及用汇编语言进行程序设计的基本思想和方法。于此同时,希望学生能了解用汇编语言程序来充分发挥计算机性能的基本思想。
本课程的学习也将为后续课程(如操作系统、接口与通信、计算机外围设备等)的学习提供必要的前期知识。
2016-05-26
AngularJS权威教程
第 1 章 初识 AngularJS .................................... 1
1.1 浏览器如何获取网页 ................................... 1
1.2 浏览器是什么 ............................................... 2
1.3 AngularJS是什么 ......................................... 2
1.3.1 AngularJS有什么不同 ...................... 3
1.3.2 许可 ................................................... 3
第 2 章 数据绑定和第一个 AngularJS
Web 应用 ................................................ 4
2.1 AngularJS中的数据绑定 ............................. 5
2.2 简单的数据绑定 ........................................... 6
2.3 数据绑定的最佳实践 ................................... 8
第 3 章 模块 ....................................................... 10
3.1 参数 ............................................................. 11
3.1.1 name (字符串) ............................. 11
3.1.2 requires (字符串数组) .............. 11
第 4 章 作用域 ................................................... 12
4.1 视图和 $scope 的世界 ................................ 12
4.2 就是 HTML 而已 ........................................ 13
4.3 作用域能做什么 ......................................... 14
4.4 $scope 的生命周期 .................................... 14
4.4.1 创建 ................................................. 15
4.4.2 链接 ................................................. 15
4.4.3 更新 ................................................. 15
4.4.4 销毁 ................................................. 15
4.5 指令和作用域 ............................................. 15
第 5 章 控制器 ................................................... 16
5.1 控制器嵌套(作用域包含作用域) ......... 18
第 6 章 表达式 ................................................... 20
6.1 解析 AngularJS表达式 .............................. 20
6.2 插值字符串 ................................................. 21
第 7 章 过滤器 ................................................... 24
7.1 自定义过滤器 ............................................. 29
7.2 表单验证 ..................................................... 29
第 8 章 指令简介 ............................................... 43
8.1 指令:自定义 HTML 元素和属性 ............ 44
8.2 向指令中传递数据 ..................................... 50
第 9 章 内置指令 ............................................... 56
9.1 基础 ng 属性指令 ....................................... 56
9.1.1 布尔属性 ......................................... 56
9.1.2 类布尔属性 ..................................... 58
9.2 在指令中使用子作用域 ............................. 59
第 10 章 指令详解 ............................................ 72
10.1 指令定义 ................................................... 72
10.1.1 restrict (字符串) ................. 74
10.1.2 优先级(数值型) ..................... 75
10.1.3 terminal (布尔型) ................. 75
10.1.4 template (字符串或函数) ...... 76
10.1.5 templateUrl (字符串或
函数) ......................................... 76
10.1.6 replace (布尔型) ................... 77
10.2 指令作用域 ............................................... 77
10.2.1 scope 参数(布尔型或对象) .... 78
10.2.2 隔离作用域 ................................. 80
10.3 绑定策略 ................................................... 81
10.3.1 transclude ................................. 82
10.3.2 controller (字符串或函数) .... 84
10.3.3 controllerAs (字符串) .......... 86
10.3.4 require (字符串或数组) ........ 86
10.4 AngularJS的生命周期 ............................. 87
10.4.1 编译阶段 ..................................... 87
10.4.2 compile (对象或函数) ............ 88
10.4.3 链接 ............................................. 89
10.5 ngModel ..................................................... 90
10.5.1 自定义渲染 ................................. 92
10.5.2 属性 ............................................. 92
10.6 自定义验证 ............................................... 93
第 11 章 AngularJS 模块加载 ....................... 95
11.1 配置 .......................................................... 95
11.2 运行块 ...................................................... 96
第 12 章 多重视图和路由 ............................... 98
12.1 安装 .......................................................... 98
12.2 布局模板 .................................................. 99
12.3 路由 .......................................................... 99
12.4 $location 服务 ...................................... 103
12.5 路由模式 ................................................ 105
12.5.1 HTML5 模式 ............................ 105
12.5.2 路由事件 ................................... 106
12.5.3 关于搜索引擎索引 ................... 107
12.6 更多关于路由的内容 ............................. 107
12.6.1 页面重新加载 ........................... 107
12.6.2 异步的地址变化 ....................... 107
第 13 章 依赖注入 .......................................... 108
13.1 推断式注入声明 ..................................... 109
13.2 显式注入声明 ........................................ 110
13.3 行内注入声明 ........................................ 110
13.4 $injector API ....................................... 111
13.4.1 annotate() ............................... 111
13.4.2 get() ......................................... 111
13.4.3 has() ......................................... 111
13.4.4 instantiate() ......................... 112
13.4.5 invoke() ................................... 112
13.5 ngMin ...................................................... 112
13.5.1 安装 .......................................... 113
13.5.2 使用 ngMin ................................ 113
13.5.3 工作原理 ................................... 113
第 14 章 服务 ................................................... 114
14.1 注册一个服务 ........................................ 114
14.2 使用服务 ................................................ 116
14.3 创建服务时的设置项 ............................. 118
14.3.1 factory() ................................. 119
14.3.2 service() ................................. 119
14.3.3 provider() ............................... 120
14.3.4 constant() ............................... 122
14.3.5 value() ..................................... 122
14.3.6 何时使用 value() 和
constant() ............................... 123
14.3.7 decorator() ............................. 123
第 15 章 同外界通信:XHR 和服务器
通信 ................................................... 125
15.1 使用 $http .............................................. 125
15.2 设置对象 ................................................ 128
15.3 响应对象 ................................................ 130
15.4 缓存 HTTP请求 ..................................... 131
15.5 拦截器 .................................................... 132
15.6 设置 $httpProvider ............................... 133
15.7 使用 $resource ....................................... 134
15.8 安装 ........................................................ 134
15.9 应用 $resource ....................................... 135
15.9.1 基于 HTTP GET方法 .............. 135
15.9.2 基于非 HTTP GET类型的
方法 .......................................... 136
15.9.3 $resource 实例 ........................ 137
15.9.4 $resource 实例是异步的 ........ 138
15.9.5 附加属性 .................................. 138
15.10 自定义 $resource 方法 ........................ 138
15.11 $resource 设置对象 ............................ 139
15.12 $resource 服务 .................................... 141
15.13 使用 Restangular .................................. 142
15.14 Restangular简介 ................................... 142
15.15 安装 Restangular .................................. 143
15.16 Restangular对象简介 ........................... 144
15.17 使用 Restangular .................................. 145
15.17.1 我的 HTTP方法们怎么办 .... 146
15.17.2 自定义查询参数和头 ........... 147
15.18 设置 Restangular .................................. 147
第 16 章 XHR 实践 ........................................ 153
16.1 跨域和同源策略 .................................... 153
16.2 JSONP .................................................... 153
16.3 使用 CORS ............................................. 154
16.3.1 设置 .......................................... 154
16.3.2 服务器端 CORS支持 .............. 155
16.3.3 简单请求 .................................. 155
16.3.4 非简单请求 ............................... 156
16.4 服务器端代理 ........................................ 157
16.5 使用 JSON .............................................. 157
16.6 使用 XML .............................................. 158
16.7 使用 AngularJS进行身份验证 .............. 159
16.7.1 服务器端需求 ........................... 159
16.7.2 客户端身份验证 ....................... 160
16.8 和 MongoDB通信 .................................. 165
第 17 章 promise ............................................ 168
17.1 什么是 promise ....................................... 168
17.2 为什么使用 promise ............................... 169
17.3 Angular中的 promise ............................. 170
17.4 链式请求 ................................................. 173
17.4.1 all(promises) .......................... 174
17.4.2 defer() ..................................... 174
17.4.3 reject(reason) ........................ 174
17.4.4 when(value) ............................. 174
第 18 章 服务器通信 ...................................... 175
18.1 自定义服务器端 ..................................... 175
18.2 安装 NodeJS ............................................ 175
18.3 安装 Express ........................................... 176
18.4 调用 API ................................................. 178
18.5 使用 Amazon AWS的无服务器应用 .... 181
18.5.1 DynamoDB ................................ 181
18.5.2 简单通知服务(SNS) ............ 181
18.5.3 简单队列服务(SQS,
Simple Queue Service) ........... 182
18.5.4 简单存储服务(S3) ............... 182
18.5.5 安全令牌服务(STS) ............ 182
18.6 AWSJS + Angular ................................... 182
18.7 开始 ......................................................... 182
18.8 介绍 ......................................................... 184
18.9 安装 ......................................................... 184
18.10 运行 ....................................................... 185
18.11 用户认证/鉴权 ...................................... 186
18.12 UserService ......................................... 190
18.13 迁移到 AWS上 .................................... 191
18.14 AWSService .......................................... 194
18.15 在 Dynamo上开始 ................................ 196
18.16 $cacheFactory ..................................... 196
18.17 保存 currentUser ................................ 197
18.18 上传到 S3 .............................................. 199
18.19 处理文件上传 ....................................... 201
18.20 查询 Dynamo ........................................ 203
18.21 在 HTML 显示列表 .............................. 204
18.22 出售我们的作品 ................................... 205
18.23 使用 Stripe ............................................ 206
18.24 使用 Firebase 的无服务器应用 ............ 209
18.25 使用 Firebase 和 Angular 的三方
数据绑定 ............................................... 210
18.26 从 AngularFire 开始 .............................. 211
18.26.1 注册并创建一个 Firebase ..... 211
18.26.2 包含 Firebase 和 AngularFire
库 ........................................... 212
18.26.3 把 Firebase 作为依赖项
添加 ....................................... 212
18.26.4 绑定模型到 Firebase URL .... 212
18.26.5 数据同步 ............................... 213
18.27 在 AngularFire 中排序 .......................... 214
18.28 Firebase 事件 ......................................... 215
18.29 显式同步 ............................................... 215
18.30 用 AngularFire 进行认证 ...................... 216
18.31 认证事件 ............................................... 217
18.31.1 $logout() ............................. 218
18.31.2 $createUser() ...................... 218
18.32 使用 Firebase 托管部署你的 Angular
应用 ....................................................... 218
18.32.1 安装 Firebase 工具 ................ 218
18.32.2 部署你的 Web站点 .............. 219
18.33 除了 AngularFire 之外 .......................... 219
第 19 章 测试 ................................................... 220
19.1 为什么要做测试 ..................................... 220
19.2 测试策略 ................................................. 220
19.3 开始测试 ................................................. 220
19.4 AngularJS测试的类型 ........................... 221
19.4.1 单元测试 ................................... 221
19.4.2 端到端测试 ............................... 222
19.5 开始 ......................................................... 222
19.6 初始化 Karma 配置文件 ........................ 223
19.7 配置选项 ................................................. 226
19.8 使用 RequireJS ....................................... 231
19.9 Jasmine .................................................... 233
19.9.1 细则套件 ................................. 233
19.9.2 定义一个细则 ......................... 233
19.10 预期 ....................................................... 234
19.10.1 内置的匹配器 ....................... 234
19.10.2 安装和卸载 ........................... 237
19.11 端到端的介绍 ....................................... 238
19.11.1 选项输入 ............................... 244
19.11.2 重复循环元素 ....................... 244
19.12 模拟和测试帮助函数 ........................... 245
19.13 模拟 $httpBackend ............................... 246
19.14 测试一个应用 ....................................... 251
19.14.1 测试路由 ............................... 252
19.14.2 测试页面内容 ....................... 255
19.14.3 测试控制器 ........................... 257
19.14.4 测试服务和工厂 ................... 259
19.14.5 测试过滤器 ........................... 263
19.14.6 测试模板 ............................... 264
19.14.7 测试指令 ............................... 266
19.15 测试事件 .............................................. 269
19.16 对 Angular的持续集成 ........................ 270
19.17 Protractor .............................................. 270
19.18 配置 ...................................................... 272
19.19 配置选项 .............................................. 273
19.20 编写测试 .............................................. 275
19.21 测试实践 .............................................. 278
19.21.1 我们的应用 ........................... 278
19.21.2 测试的策略 ........................... 279
19.22 建立我们的第一个测试 ....................... 279
19.23 测试输入框 .......................................... 281
19.23.1 测试列表 ............................... 282
19.23.2 测试路由 ............................... 284
19.24 页面对象 .............................................. 285
第 20 章 事件 ................................................... 287
20.1 什么是事件 ............................................ 287
20.2 事件传播 ................................................ 287
20.2.1 使用 $emit 来冒泡事件 ............ 288
20.2.2 使用 $broadcast 向下传递
事件 .......................................... 288
20.3 事件监听 ................................................ 289
20.4 事件对象 ................................................ 289
20.5 事件相关的核心服务 ............................. 290
20.5.1 核心系统的 $emitted 事件 ...... 290
20.5.2 核心系统的 $broadcast
事件 .......................................... 290
第 21 章 架构 ................................................... 292
21.1 目录结构 ................................................ 292
21.2 模块 ........................................................ 293
21.3 控制器 .................................................... 294
21.4 指令 ........................................................ 296
21.5 测试 ........................................................ 296
第 22 章 Angular 动画 .................................. 297
22.1 安装 ........................................................ 297
22.2 它是如何运作的 ..................................... 297
22.3 使用 CSS3过渡 ...................................... 298
22.4 使用 CSS3动画 ...................................... 300
22.5 交错 CSS过渡/动画 ............................... 301
22.5.1 交错 CSS过渡 .......................... 301
22.5.2 交错 CSS动画 .......................... 302
22.5.3 什么指令支持交错动画 ........... 302
22.6 使用 JavaScript 动画 .............................. 302
22.7 微调动画 ................................................ 303
22.8 DOM回调事件 ...................................... 304
22.9 内置指令的动画 .................................... 304
22.9.1 ngRepeat 动画 .......................... 304
22.9.2 ngView 动画 .............................. 306
22.9.3 ngInclude 动画 ........................ 308
22.9.4 ngSwitch 动画 .......................... 310
22.9.5 ngIf 动画 .................................. 312
22.9.6 ngClass 动画 ............................ 314
22.9.7 ngShow/ngHide 动画 ................ 316
22.10 创建自定义动画 .................................. 318
22.10.1 addClass() ........................... 319
22.10.2 removeClass() ..................... 320
22.10.3 enter() ................................. 321
22.10.4 leave() ................................. 322
22.10.5 move() ................................... 323
22.11 与第三方库集成 .................................. 324
22.11.1 Animate.css ........................... 324
22.11.2 TweenMax/TweenLite .......... 324
第 23 章 digest 循环和 $apply ...................... 326
23.1 $watch 列表 ............................................ 326
23.2 脏值检查 ................................................ 327
23.3 $watch .................................................... 328
23.4 $watchCollection ................................. 330
23.5 页面中的 $digest 循环 .......................... 330
23.6 $evalAsync 列表 .................................... 331
23.7 $apply .................................................... 332
23.8 何时使用 $apply ..................................... 332
第 24 章 揭秘 Angular .................................. 334
24.1 视图的工作原理 .................................... 335
24.1.1 编译阶段 .................................. 335
24.1.2 运行时 ...................................... 336
第 25 章 AngularJS 精华扩展 .................... 337
25.1 AngularUI ............................................... 337
25.2 安装 ........................................................ 337
25.3 ui-router ............................................... 337
25.3.1 安装 .......................................... 337
25.3.2 事件 .......................................... 342
25.3.3 $stateParams ........................... 343
25.3.4 $urlRouterProvider ............... 344
25.3.5 创建一个导航程序 ................... 345
25.4 ui-utils ................................................. 346
25.4.1 安装 ........................................... 347
25.4.2 mask ........................................... 347
25.4.3 ui-event ................................... 347
25.4.4 ui-format ................................. 348
第 26 章 移动应用 .......................................... 350
26.1 响应式 Web应用 .................................... 350
26.2 交互 ......................................................... 350
26.2.1 安装 ........................................... 350
26.2.2 ngTouch ..................................... 351
26.2.3 $swipe 服务 .............................. 352
26.2.4 angular-gestures 和多点
触控手势 ................................... 353
26.2.5 安装 angular-gestures ........... 354
26.2.6 使用 angular-gestures ........... 354
26.3 Cordova中的原生应用程序 ................... 355
26.4 Cordova入门 .......................................... 356
26.4.1 Cordova 开发流程 ..................... 359
26.4.2 平台 ........................................... 359
26.4.3 插件 ........................................... 359
26.4.4 构建 ........................................... 360
26.4.5 模拟和运行 ............................... 360
26.4.6 开发阶段 ................................... 360
26.4.7 Anguar中的 Cordova 服务 ....... 361
26.5 引入 Angular ........................................... 362
26.6 使用 Yeoman构建 .................................. 363
26.6.1 修改 Yeoman以便使用
Cordova ..................................... 364
26.6.2 装配 Yeoman构建 .................... 365
26.6.3 构建移动部分 ........................... 365
26.6.4 处理引导程序 ........................... 367
第 27 章 本地化 ............................................... 369
27.1 angular-translate ................................ 369
27.2 安装 ......................................................... 369
27.3 教你的应用一种新语言 ......................... 370
27.4 多语言支持 ............................................. 371
27.5 运行时切换语言 ..................................... 372
27.6 加载语言 ................................................. 373
27.7 angular-gettext ................................... 374
27.8 安装 ......................................................... 374
27.9 用法 ......................................................... 375
27.10 字符串提取 ........................................... 375
27.11 翻译字符串 ........................................... 377
27.12 编译新语言 ........................................... 378
27.13 改变语言 ............................................... 379
第 28 章 缓存 ................................................... 381
28.1 什么是缓存 ............................................. 381
28.2 Angular中的缓存 ................................... 381
28.2.1 $cacheFactory 简介 ................. 381
28.2.2 缓存对象 ................................... 382
28.3 $http 中的缓存 ...................................... 382
28.3.1 默认的 $http 缓存 .................... 382
28.3.2 自定义缓存 ............................... 383
28.4 为 $http 设置默认缓存 .......................... 384
第 29 章 安全性 ............................................... 385
29.1 严格的上下文转义: $sce 服务 ............ 385
29.2 URL 白名单 ............................................ 387
29.3 URL 黑名单 ............................................ 388
29.4 $sce API ................................................. 388
29.4.1 getTrusted ............................... 388
29.4.2 parse ......................................... 389
29.4.3 trustAs ..................................... 389
29.4.4 isEnabled ................................. 390
29.5 配置 $sce ................................................. 390
29.6 可信赖的上下文类型 ............................. 390
第 30 章 AngularJS 和 IE 浏览器 ............... 391
30.1 Ajax缓存 ................................................ 393
30.2 AngularJS中的 SEO ............................... 393
30.3 使 Angular应用可被索引 ...................... 393
30.4 服务端 ..................................................... 393
30.4.1 hashbang语法 ........................... 394
30.4.2 HTML5 路由模式 ..................... 394
30.5 服务端处理 SEO的选项 ........................ 394
30.5.1 使用 Node/Express中间件 ....... 395
30.5.2 使用 Apache 重写 URL ............ 395
30.5.3 使用 Ngnix代理 URL .............. 396
30.6 获取快照 ................................................. 396
30.7 使用 Zombie.js获取 HTML 快照 .......... 397
30.8 使用 grunt-html-snapshot ................... 398
30.9 Prerender.io ............................................. 399
30.10 <noscript> 方法 ................................... 400
第 31 章 构建 Angular Chrome 应用 ........ 401
31.1 了解 Chrome 应用 .................................. 401
31.1.1 manifest.json .............................. 401
31.1.2 背景脚本 ................................... 401
31.1.3 视图 .......................................... 401
31.2 构建你的 Chrome 应用 .......................... 402
31.3 搭建框架 ................................................ 402
31.4 manifest.json ........................................... 403
31.5 tab.html ................................................... 404
31.6 在 Chrome 中加载应用 .......................... 405
31.7 主模块 .................................................... 406
31.8 构建主页 ................................................ 406
31.9 使用 Wundergroud 的天气 API ............. 408
31.10 设置界面 .............................................. 411
31.11 实现用户服务 ...................................... 413
31.12 城市自动填充/自动完成 ...................... 415
31.13 添加时区支持 ...................................... 418
第 32 章 优化 Angular 应用 ......................... 421
32.1 优化什么 ................................................ 421
32.2 优化 $digest 循环 .................................. 421
32.3 优化 ng-repeat ...................................... 423
32.4 优化 $digest 调用 .................................. 423
32.5 优化 $watch 函数 .................................... 424
32.5.1 bindonce .................................... 425
32.5.2 $watch 函数的自动优化 .......... 427
32.6 优化过滤器 ............................................ 427
32.6.1 不变的数据 ............................... 427
32.6.2 过滤后的数据 ........................... 427
32.7 页面加载优化技巧 ................................. 428
32.7.1 压缩 .......................................... 429
32.7.2 利用 $templateCache ............... 429
第 33 章 调试 AngularJS ............................. 430
33.1 从 DOM 中调试 ..................................... 430
33.1.1 scope() ..................................... 431
33.1.2 controller() ........................... 431
33.1.3 injector() ............................... 431
33.1.4 inheritedData() ..................... 431
33.2 调试器 .................................................... 431
33.3 Angular Batarang .................................... 432
33.3.1 安装 Batarang ........................... 432
33.3.2 检查模型 ................................... 433
33.3.3 检查性能 ................................... 433
33.3.4 检查依赖图表 ........................... 434
33.3.5 可视化应用 ............................... 434
第 34 章 下一步 .............................................. 435
34.1 jqLite 和 jQuery ...................................... 435
34.2 了解基本工具 ........................................ 436
34.3 Grunt ....................................................... 436
34.4 grunt-angular-templates ................... 439
34.4.1 安装 .......................................... 439
34.4.2 用法 .......................................... 440
34.4.3 可用选项 .................................. 440
34.4.4 用法 .......................................... 442
34.5 Lineman .................................................. 443
34.6 Bower ...................................................... 445
34.6.1 安装 .......................................... 445
34.6.2 Bower简介 ............................... 445
34.6.3 配置 Bower ............................... 446
34.6.4 搜索程序包 ............................... 447
34.6.5 安装程序包 ............................... 447
34.6.6 使用程序包 ............................... 447
34.6.7 移除程序包 ............................... 448
34.7 Yeoman ................................................... 448
34.7.1 安装 .......................................... 448
34.7.2 用法 .......................................... 449
34.7.3 创建路由 .................................. 451
34.7.4 创建控制器 ............................... 451
34.7.5 创建自定义指令 ....................... 451
34.7.6 创建自定义过滤器 ................... 451
34.7.7 创建视图 .................................. 451
34.7.8 创建服务 .................................. 452
34.7.9 创建装饰器 ............................... 452
34.8 配置 Angular生成器 .............................. 452
34.8.1 CoffeeScript .............................. 452
34.8.2 安全压缩 .................................. 452
34.8.3 跳过索引 .................................. 452
34.9 测试应用 ................................................ 452
34.10 打包应用 .............................................. 453
34.11 打包模板 .............................................. 453
第 35 章 总结 .................................................. 456
2016-05-12
Fullpage全屏滚动例子
Fullpage.js是一款全屏滚动的插件,可根据窗口大小自动调节可视区域内容大小。支持用户滚动前后函数回调。本资源涵盖了Fullpage的以下基本功能的DEMO
2016-04-28
WebGL编程教程PDF
基本信息
原书名:WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL)
原出版社: Addison-Wesley Professional
作者: (美)Kouichi Matsuda Rodger Lea(松田浩一,罗杰.李)
译者: 谢光磊
出版社:电子工业出版社
ISBN:9787121229428
上架时间:2014-6-11
出版日期:2014 年6月
开本:16开
页码:470
版次:1-1
---------------------
目录
《WebGL编程指南》
第1 章 WebGL 概述 1
WebGL 的优势 3
使用文本编辑器开发三维应用 3
轻松发布三维图形程序 4
充分利用浏览器的功能 5
学习和使用WebGL 很简单 5
WebGL 的起源 5
WebGL 程序的结构 6
总结 7
第2 章 WebGL 入门 9
Canvas 是什么? 10
使用[canvas] 标签 11
DrawRectangle.js 13
最短的WebGL 程序:清空绘图区 16
HTML 文件(HelloCanvas.html) 16
JavaScript 程序(HelloCanvas.js) 17
用示例程序做实验 22
绘制一个点(版本1) 22
HelloPoint1.html 24
HelloPoint1.js 24
着色器是什么? 25
使用着色器的WebGL 程序的结构 27
初始化着色器 29
顶点着色器 31
片元着色器 33
绘制操作 34
WebGL 坐标系统 35
用示例程序做实验 37
绘制一个点(版本2) 38
使用attribute 变量 38
示例程序(HelloPoint2.js) 39
获取attribute 变量的存储位置 41
向attribute 变量赋值 42
gl.vertexAttrib3f() 的同族函数 44
用示例程序做实验 45
通过鼠标点击绘点 46
示例程序(ClickedPoints.js) 47
注册事件响应函数 48
响应鼠标点击事件 50
用示例程序做实验 53
改变点的颜色 55
示例程序(ColoredPoints.js) 56
uniform 变量 58
获取uniform 变量的存储地址 59
向uniform 变量赋值 60
gl.uniform4f() 的同族函数 61
总结 62
第3 章 绘制和变换三角形 63
绘制多个点 64
示例程序(MultiPoint.js) 66
使用缓冲区对象 69
创建缓冲区对象(gl.createBuffer()) 70
绑定缓冲区(gl.bindBuffer()) 71
向缓冲区对象中写入数据(gl.bufferData()) 72
类型化数组 74
将缓冲区对象分配给attribute 变量(gl.vertexAttribPointer()) 75
开启attribute 变量(gl.enableVertexAttribArray()) 77
gl.drawArrays() 的第2 个和第3 个参数 78
用示例程序做实验 79
Hello Triangle 80
示例程序(HelloTriangle.js) 80
基本图形 82
用示例程序做实验 83
Hello Rectangle(HelloQuad) 84
用示例程序做实验 85
移动、旋转和缩放 86
平移 87
示例程序(TranslatedTriangle.js) 88
旋转 91
示例程序(RotatedTriangle.js) 93
变换矩阵:旋转 97
变换矩阵:平移 100
4×4 的旋转矩阵 101
示例程序(RotatedTriangle_Matrix.js) 102
平移:相同的策略 105
变换矩阵:缩放 106
总结 108
第4 章 高级变换与动画基础 109
平移,然后旋转 109
矩阵变换库:cuon-matrix.js 110
示例程序(RotatedTriangle_Matrix4.js) 111
复合变换 113
示例程序(RotatedTranslatedTriangle.js) 115
用示例程序做实验 117
动画 118
动画基础 119
示例程序(RotatingTriangle.js) 119
反复调用绘制函数(tick()) 123
按照指定的旋转角度绘制三角形(draw()) 123
请求再次被调用(requestAnimationFrame()) 125
更新旋转角(animate()) .126
用示例程序做实验 128
总结 130
第5 章 颜色与纹理 131
将非坐标数据传入顶点着色器 131
示例程序(MultiAttributeSize.js) 133
创建多个缓冲区对象 134
gl.vertexAttribPointer() 的步进和偏移参数 135
示例程序(MultiAttributeSize_Interleaved.js) 136
修改颜色(varying 变量) 140
示例程序(MultiAttributeColor.js) 141
用示例程序做实验 144
彩色三角形(ColoredTriangle.js) 145
几何形状的装配和光栅化 145
调用片元着色器 149
用示例程序做实验 149
varying 变量的作用和内插过程 151
在矩形表面贴上图像 153
纹理坐标 156
将纹理图像粘贴到几何图形上 156
示例程序(TexturedQuad.js) 157
设置纹理坐标(initVertexBuffers()) 160
配置和加载纹理(initTextures()) 160
为WebGL 配置纹理(loadTexture()) 164
图像Y 轴反转 164
激活纹理单元(gl.activeTexture()) 165
绑定纹理对象(gl.bindTexture()) 166
配置纹理对象的参数(gl.texParameteri()) 168
将纹理图像分配给纹理对象(gl.texImage2D()) 171
将纹理单元传递给片元着色器(gl.uniform1i()) 173
从顶点着色器向片元着色器传输纹理坐标 174
在片元着色器中获取纹理像素颜色(texture2D()) 174
用示例程序做试验 175
使用多幅纹理 177
示例程序(MultiTexture.js) 178
总结 183
第6 章 OpenGL ES 着色器语言(GLSL ES) 185
回顾:基本着色器代码 186
GLSL ES 概述 186
你好,着色器! 187
基础 187
执行次序 187
注释 187
数据值类型(数值和布尔值) 188
变量 188
GLSL ES 是强类型语言 189
基本类型 189
赋值和类型转换 190
运算符 191
矢量和矩阵 192
赋值和构造 193
访问元素 195
运算符 197
结构体 200
赋值和构造 200
访问成员 200
运算符 201
数组 201
取样器(纹理) 202
运算符优先级 203
程序流程控制:分支和循环 203
if 语句和if-else 语句 203
for 语句 204
continue、break 和discard 语句 205
函数 205
规范声明 207
参数限定词 207
内置函数 208
全局变量和局部变量 209
存储限定字 209
const 变量 209
Attribute 变量 210
uniform 变量 211
varying 变量 211
精度限定字 211
预处理指令 213
总结 215
第7 章 进入三维世界 217
立方体由三角形构成 217
视点和视线 218
视点、观察目标点和上方向 219
示例程序(LookAtTriangles.js) 221
LookAtTriangles.js 与RotatedTriangle_Matrix4.js 224
从指定视点观察旋转后的三角形 225
示例程序(LookAtRotatedTriangles.js) 227
用示例程序做实验 228
利用键盘改变视点 230
示例程序(LookAtTrianglesWithKeys.js) 230
独缺一角 232
可视范围(正射类型) 233
可视空间 234
定义盒状可视空间 235
示例程序(OrthoView.html) 236
示例程序(OrthoView.js) 237
JavaScript 修改HTML 元素 239
顶点着色器的执行流程 239
修改near 和far 值 241
补上缺掉的角(LookAtTrianglesWithKeys_ViewVolume.js) 243
用示例程序做实验 245
可视空间(透视投影) 246
定义透视投影可视空间 247
示例程序(perspectiveview.js) 249
投影矩阵的作用 251
共冶一炉(模型矩阵、视图矩阵和投影矩阵) 252
示例程序(PerspectiveView_mvp.js) 254
用示例程序做实验 257
正确处理对象的前后关系 258
隐藏面消除 260
示例程序(DepthBuffer.js) 262
深度冲突 263
立方体 266
通过顶点索引绘制物体 268
示例程序(HelloCube.js) 268
向缓冲区中写入顶点的坐标、颜色与索引 271
为立方体的每个表面指定颜色 274
示例程序(ColoredCube.js) 275
用示例程序做实验 277
总结 279
第8 章 光照 281
光照原理 281
光源类型 283
反射类型 284
平行光下的漫反射 286
根据光线和表面的方向计算入射角 287
法线:表面的朝向 288
示例程序(LightedCube.js) 291
环境光下的漫反射 296
示例程序(LightedCube_ambient.js) 298
运动物体的光照效果 299
魔法矩阵:逆转置矩阵 301
示例程序(LightedTranslatedRotatedCube.js) 302
点光源光 304
示例程序(PointLightedCube.js) 305
更逼真:逐片元光照 308
示例程序(PointLightedCube_perFragment.js) 309
总结 310
第9 章 层次模型 311
多个简单模型组成的复杂模型 311
层次结构模型 313
单关节模型 314
示例程序(JointMode.js) 315
绘制层次模型(draw()) 319
多节点模型 321
示例程序(MultiJointModel.js) 323
绘制部件(drawBox()) 326
绘制部件(drawSegments()) 327
着色器和着色器程序对象:initShaders() 函数的作用 332
创建着色器对象(gl.createShader()) 333
指定着色器对象的代码(gl.shaderSource()) 334
编译着色器(gl.compileShader()) 334
创建程序对象(gl.createProgram()) 336
为程序对象分配着色器对象(gl.attachShader()) 337
连接程序对象(gl.linkProgram()) 337
告知WebGL 系统所使用的程序对象(gl.useProgram()) 339
initShaders() 函数的内部流程 339
总结 342
第10 章 高级技术 343
用鼠标控制物体旋转 343
如何实现物体旋转 344
示例程序(RotateObject.js) 344
选中物体 347
如何实现选中物体 347
示例程序(PickObject.js) 348
选中一个表面 351
示例程序(PickFace.js) 352
HUD(平视显示器) 355
如何实现HUD 355
示例程序(HUD.html) 356
示例程序(HUD.js) 357
在网页上方显示三维物体 359
雾化(大气效果) 359
如何实现雾化 360
示例程序(Fog.js) 361
使用w 分量(Fog_w.js) 363
绘制圆形的点 364
如何实现圆形的点 364
示例程序(RoundedPoint.js) 366
α 混合 367
如何实现α 混合 367
示例程序(LookAtBlendedTriangles.js) 369
混合函数 369
半透明的三维物体(BlendedCube.js) 371
透明与不透明物体共存 372
切换着色器 373
如何实现切换着色器 374
示例程序(ProgramObject.js) 375
渲染到纹理 379
帧缓冲区对象和渲染缓冲区对象 380
如何实现渲染到纹理 381
示例程序(FramebufferObject.js) 382
创建帧缓冲区对象(gl.createFramebuffer()) 385
创建纹理对象并设置其尺寸和参数 385
创建渲染缓冲区对象(gl.createRenderbuffer()) 386
绑定渲染缓冲区并设置其尺寸(gl.bindRenderbuffer(),
gl.renderbufferStorage()) 386
将纹理对象关联到帧缓冲区对象(gl.bindFramebuffer(),
gl.framebufferTexture2D()) 388
将渲染缓冲区对象关联到帧缓冲区对象(gl.framebufferRenderbuffer()) 389
检查帧缓冲区的配置(gl.checkFramebufferStatus()) 390
在帧缓冲区进行绘图 390
绘制阴影 392
如何实现阴影 392
示例程序(Shadow.js) 393
提高精度 399
示例程序(Shadow_highp.js) 400
加载三维模型 401
OBJ 文件格式 404
MTL 文件格式 405
示例程序(OBJViewer.js) 406
自定义类型对象 409
示例程序(OBJViewer.js 解析数据部分) 411
响应上下文丢失 418
如何响应上下文丢失 419
示例程序(RotatingTriangle_contextLost.js) 420
总结 422
附录A WebGL 中无须交换缓冲区 423
附录B GLSL ES 1.0 内置函数 427
角度和三角函数 428
指数函数 429
通用函数 430
几何函数 433
矩阵函数 434
矢量函数 435
纹理查询函数 436
附录C 投影矩阵 437
正射投影矩阵 437
透视投影矩阵 437
附录D WebGL/OpenGL :左手还是右手坐标系? 439
示例程序(CoordinateSystem.js) 440
隐藏面消除和裁剪坐标系统 443
裁剪坐标系和可视空间 444
什么是对的? 446
总结 448
附录E 逆转置矩阵 449
附录F 从文件中加载着色器 453
附录G 世界坐标系和本地坐标系 . 457
本地坐标系 458
世界坐标系 459
变换与坐标系 461
附录H WebGL 的浏览器设置 . 463
2016-04-14
modernizr.js
给不支持 HTML5
标签的浏览器如 IE6 、7、8 追加一点由 Remy Sharp开发的HTML5垫片脚本,使其可以
识别<aside>、<section>等 HTML5 元素之外,它主要做的就是浏览器“功能检测”。
因此,它知道浏览器是否支持各种 HTML5和CSS3特性
2015-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人