第1篇 JavaScript基础篇 2
第1章 JavaScript概述 2
1.1 JavaScript的起源 3
1.1.1 新鲜的玩意儿 3
1.1.2 不仅仅是网页中的代码 3
1.1.3 典型的JavaScript脚本 3
1.2 浏览器之争 4
1.2.1 DHTML 5
1.2.2 浏览器之间的冲突 5
1.2.3 标准的制定 5
1.3 JavaScript的实现 5
1.3.1 ECMAScript 6
1.3.2 DOM 6
1.3.3 BOM 6
1.3.4 新的开始 6
1.4 JavaScript小体验 6
1.4.1 案例1——定时打开窗口 7
1.4.2 案例2——日期选择器 7
高手私房菜 8
技巧:在HTML中嵌入JavaScript的方法 8
第2章 JavaScript基础 9
2.1 JavaScript的语法 10
2.2 变量 10
2.3 数据类型 11
2.3.1 字符串 12
2.3.2 数值 14
2.3.3 布尔型 15
2.3.4 类型转换 15
2.3.5 数组 16
2.4 关键字 19
2.5 保留字 19
2.6 条件语句 20
2.6.1 比较运算符 20
2.6.2 逻辑运算符 20
2.6.3 if语句 21
2.6.4 switch语句 21
2.7 循环语句 22
2.7.1 while语句 22
2.7.2 do...while语句 22
2.7.3 for语句 22
2.7.4 break和continue语句 23
2.7.5 for...in语句 24
2.8 函数 25
2.8.1 定义和调用函数 25
2.8.2 用arguments对象访问函数的参数 26
2.9 对象 27
2.9.1 对象简介 27
2.9.2 时间日期:Date对象 28
2.9.3 数学计算:Math对象 30
2.10 BOM基础 32
2.10.1 window对象 32
2.10.2 document对象 34
2.10.3 location对象 34
2.10.4 navigator对象 35
2.10.5 screen对象 35
高手私房菜 36
技巧1:如何快速检查语法 36
技巧2:简略语句 36
第3章 JavaScript开发 37
3.1 JavaScript的应用环境 38
3.1.1 客户端JavaScript 38
3.1.2 其他环境中的JavaScript 39
3.1.3 客户端JavaScript网页中的可执行内容 39
3.1.4 客户端JavaScript的特性 40
3.2 常用的开发工具 41
3.2.1 附带测试的开发工具——TestSwarm 41
3.2.2 半自动化开发工具——Minimee 41
3.2.3 轻松建立JS库的开发工具——JavaScriptBoilerplate 42
3.3 常用的调试工具 42
3.3.1 万能调试工具——Drosera 43
3.3.2 最规则的调试工具——Dragonfly 43
3.3.3 Firebug 43
3.3.4 前端调试利器——Debugbar 44
3.3.5 支持浏览器最多的工具——Venkman 44
3.4 案例1——用JavaScript计算借贷支出 46
3.5 案例2——九九乘法表 48
高手私房菜 49
技巧1:更多的Venkman调试方法 49
技巧2:开发中常用到的快速数组创建方法 50
第4章 CSS基础 51
4.1 CSS的概念 52
4.1.1 网页标记的概念 52
4.1.2 HTML与CSS的优缺点 52
4.1.3 浏览器对CSS的支持 52
4.2 网页设计中的CSS 53
4.2.1 使用CSS能做什么 53
4.2.2 CSS的局限性是什么 53
4.3 使用CSS控制页面 53
4.3.1 行内样式 55
4.3.2 内嵌式 56
4.3.3 导入样式 57
4.4 CSS选择器 58
4.4.1 标记选择器 58
4.4.2 类别选择器 59
4.4.3 ID选择器 59
4.5 CSS设置文字效果 60
4.5.1 CSS文字样式 60
4.5.2 CSS段落文字 61
4.5.3 首字放大 63
4.6 CSS设置图片效果 64
4.6.1 图片的边框 64
4.6.2 图文混排 66
4.7 CSS设置页面背景 67
4.7.1 背景颜色 67
4.7.2 背景图片 68
4.7.3 背景图的重复设置 69
4.8 CSS超链接 70
4.8.1 动态超链接 70
4.8.2 按钮式超链接 71
4.8.3 CSS控制鼠标指针 72
4.9 CSS制作实用菜单 73
4.9.1 项目列表 73
4.9.2 无需表单的菜单 75
高手私房菜 77
技巧1:如何快速掌握CSS 77
技巧2:辅助CSS的JavaScript语法——用JSON存储数据 77
第5章 CSS进阶 79
5.1 了解块级元素和行内级元素 80
5.1.1 块级元素和行内级元素的不同 80
5.1.2 关于div元素和span元素 81
5.2 DIV标记与SPAN标记布局网页 81
5.2.1 盒子模型的概念 83
5.2.2 网页border区域定义 85
5.2.3 网页padding区域定义 86
5.2.4 网页margin区域定义 88
5.3 CSS布局定位 89
5.3.1 浮动定位 89
5.3.2 position定位 91
5.4 盒子的浮动 93
5.5 盒子的定位 95
5.6 案例1——图文层叠效果 96
5.7 案例2——歌曲编辑列表 97
5.8 案例3——菜单 99
高手私房菜 101
技巧1:使用CSS sprites技术加速图片展示性能 101
技巧2:操作CSS的高效JavaScript语法 102
第6章 DOM模型 103
6.1 DOM及DOM技术简介 104
6.1.1 DOM简介 104
6.1.2 DOM技术的简单应用 104
6.1.3 基本的DOM方法 105
6.2 网页中的DOM模型框架 108
6.3 DOM模型中的节点 109
6.3.1 元素节点 109
6.3.2 文本节点 110
6.3.3 属性节点 111
6.4 使用非标准DOMinnerHTML属性 112
6.5 DOM与CSS 113
6.5.1 三位一体的页面 114
6.5.2 使用className属性 115
高手私房菜 116
技巧1:通过className添加CSS 116
技巧2:如何检查浏览器支持的DOM标准级别 116
第2篇 JavaScript高级篇 118
第7章 事件机制 118
7.1 事件机制简介 119
7.2 常用的事件函数 119
7.2.1 鼠标操作事件 119
7.2.2 键盘操作事件 121
7.2.3 其他事件 122
7.3 案例1——屏蔽鼠标右键 123
7.3.1 方法1:使用鼠标事件函数 123
7.3.2 方法2:使用鼠标事件监听 124
7.4 案例2——伸缩的两级菜单 125
7.4.1 建立HTML框架 125
7.4.2 设置各级菜单的CSS样式风格 126
7.4.3 为菜单添加伸缩效果 127
高手私房菜 128
技巧:事件处理步骤 128
第8章 表格与表单 129
8.1 用CSS控制表格样式 130
8.1.1 理解表格的相关标记 130
8.1.2 设置表格的颜色 131
8.1.3 设置表格的边框 132
8.2 用DOM动态控制表格 133
8.2.1 动态添加表格 133
8.2.2 修改单元格内容 135
8.2.3 动态删除表格 136
8.3 控制表单 138
8.3.1 理解表单的相关标记与表单元素 138
8.3.2 用CSS控制表单样式 140
8.3.3 访问表单中的元素 142
8.3.4 公共属性与方法 142
8.3.5 提交表单 143
8.4 设置文本框 144
8.4.1 控制用户输入字符个数 144
8.4.2 设置光标经过时自动选择文本 146
8.5 设置单选按钮 147
8.6 设置复选框 149
8.7 设置下拉菜单 151
8.7.1 访问选中项 151
8.7.2 添加、替换、删除选项 154
8.8 案例——自动提示的文本框 155
8.8.1 建立框架结构 156
8.8.2 实现匹配用户输入 157
8.8.3 显示提示框 158
高手私房菜 160
技巧1:复杂表单的设计技巧 160
技巧2:在客户端通过JavaScript控制多次提交 160
第9章 JavaScript的调试与优化 161
9.1 常见的错误和异常 162
9.1.1 拼写错误 162
9.1.2 访问不存在的变量 162
9.1.3 括号不匹配 162
9.1.4 字符串和变量连接错误 163
9.1.5 等号与赋值混淆 163
9.2 错误处理 164
9.2.1 用alert()和document.write()方法监视变量值 164
9.2.2 用onerror事件找到错误 165
9.2.3 用try...catch语句找到错误 166
9.3 使用调试器 167
9.3.1 用Firefox错误控制台调试 167
9.3.2 用Microsoft Script Debugger调试 168
9.3.3 用Venkman调试 169
9.4 JavaScript优化 169
9.4.1 缩短代码下载时间 169
9.4.2 合理声明变量 170
9.4.3 使用内置函数缩短编译时间 171
9.4.4 合理书写if语句 171
9.4.5 最小化语句数量 171
9.4.6 节约使用DOM 171
高手私房菜 172
技巧1:通过try…catch逐渐缩小范围查找错误 172
技巧2:其他调试常用注意事项 172
第10章 Ajax基础 173
10.1 认识Ajax 174
10.1.1 Ajax的基本概念 174
10.1.2 Ajax的组成部分 174
10.1.3 为什么要用Ajax 174
10.2 Ajax异步交互 175
10.2.1 什么是异步交互 175
10.2.2 异步对象连接服务器 175
10.2.3 GET和POST模式 178
10.2.4 服务器返回XML 181
10.2.5 处理多个异步请求 184
10.3 Ajax框架 186
10.3.1 使用AjaxLib 186
10.3.2 使用AjaxGold 188
10.4 案例1——制作可自动校验的表单 190
10.4.1 搭建框架 190
10.4.2 建立异步请求 190
10.4.3 服务器端处理 191
10.4.4 显示异步查询结果 192
10.5 案例2——制作带自动提示的文本框 193
高手私房菜 195
技巧1:使用Ajax时IE缓存问题的解决方法 195
技巧2:使用Ajax时的浏览器兼容性 196
第3篇 jQuery框架篇 198
第11章 jQuery基础 198
11.1 认识jQuery 199
11.1.1 jQuery的技术优势 199
11.1.2 下载并使用jQuery 201
11.2 jQuery的“$” 201
11.2.1 选择器 201
11.2.2 功能函数前缀 202
11.2.3 解决windows.onload函数的冲突 203
11.2.4 创建DOM元素 203
11.2.5 自定义添加“$” 204
11.2.6 解决“$”的冲突 205
11.3 jQuery与CSS 3 205
11.3.1 CSS 3标准 205
11.3.2 浏览器的兼容性 206
11.3.3 jQuery的引入 207
11.4 采用jQuery链 208
11.5 jQuery的开发工具 209
11.5.1 JavaScript Editor Pro 209
11.5.2 Dreamweaver 209
11.5.3 UltraEdit 210
11.6 jQuery的调试工具 210
11.6.1 Firefox的利器——FireBug 210
11.6.2 Blackbird 212
11.6.3 Visual Studio 2008 213
11.6.4 其他调试工具 214
11.7 案例——我的第一个jQuery程序 214
11.7.1 开发前的一些准备工作 215
11.7.2 具体的程序开发 215
高手私房菜 216
技巧1:jQuery变量和普通JavsScript变量不能混淆 216
技巧2:让jQuery代码更安全 216
第12章 用jQuery控制页面 217
12.1 标记的属性 218
12.1.1 each()遍历元素 218
12.1.2 获取属性的值 219
12.1.3 设置属性的值 220
12.1.4 删除属性 221
12.2 设置元素的样式 221
12.2.1 添加、删除CSS类别 221
12.2.2 在类别间动态切换 222
12.2.3 实例——制作隔行颜色交替变换的表格 223
12.2.4 直接获取、设置样式 223
12.2.5 处理页面元素 224
12.3 直接获取、编辑内容 224
12.3.1 移动和复制元素 226
12.3.2 删除元素 227
12.3.3 克隆元素 228
12.4 处理表单元素的值 229
12.4.1 获取表单元素的值 229
12.4.2 设置表单元素的值 230
12.5 处理页面事件 231
12.5.1 绑定事件监听 231
12.5.2 移除事件监听 232
12.5.3 传递事件对象 233
12.5.4 触发事件 234
12.5.5 实现单击事件的动态交替 235
12.5.6 实现感应鼠标 236
12.6 案例——快餐配送页面 236
12.6.1 框架搭建 236
12.6.2 添加事件 238
12.6.3 设置样式风格 240
高手私房菜 241
技巧1:同时使用两个不同版本的jQuery 241
技巧2:jQuery实现两列的高度相等 242
第13章 用jQuery制作动画与特效 243
13.1 显示和隐藏元素 244
13.1.1 使用show()和hide()方法 244
13.1.2 案例——制作多级菜单 245
13.1.3 使用toggle()方法实现显隐切换 246
13.2 元素显隐的渐入渐出效果 247
13.2.1 使用show()、hide()和toggle()方法 247
13.2.2 使用fadeIn()和fadeOut()方法 249
13.2.3 使用fadeTo()方法自定义变幻目标透明度 251
13.3 幻灯片效果 252
13.4 案例——制作伸缩的导航条 253
高手私房菜 255
技巧1:使用stop()方法停止动画 255
技巧2:妙用slideDown和slideUp方法 256
第14章 jQuery的功能函数 257
14.1 什么是功能函数 258
14.2 功能函数的分类 258
14.2.1 浏览器的检测 258
14.2.2 数组和对象的操作 259
14.2.3 字符串操作 261
14.2.4 测试操作 262
14.2.5 URL操作 263
14.3 函数的扩展 263
14.4 处理JavaScript对象 265
14.4.1 使用$.each()方法遍历 265
14.4.2 过滤数据 266
14.4.3 转化数据 267
14.4.4 搜索数组元素 268
14.5 获取外部代码 269
14.6 其他函数——$.proxy() 270
高手私房菜 271
技巧1:易出现的变量作用域错误 271
技巧2:jQuery访问原生属性和方法 272
第15章 jQuery与Ajax的综合应用 273
15.1 加载异步数据 274
15.1.1 传统的JavaScript方法 274
15.1.2 jQuery中的load()方法 276
15.1.3 jQuery中的全局函数getJSON() 277
15.1.4 jQuery中的全局函数getScript() 279
15.1.5 jQuery中异步加载XML文档 281
15.2 请求服务器数据 281
15.2.1 $.get()请求数据 281
15.2.2 $.post()请求数据 283
15.2.3 serialize()序列化表单 285
15.3 $.ajax()方法 286
15.3.1 $.ajax()基本概念 286
15.3.2 $.ajaxsetup()设置全局Ajax 288
15.4 Ajax中的全局事件 289
15.4.1 Ajax全局事件的基本概念 289
15.4.2 ajaxStart与ajaxStop全局事件 289
15.5 案例——用Ajax实现新闻点评即时更新 291
15.5.1 需求分析 291
15.5.2 效果界面设计 292
15.5.3 功能实现步骤 292
15.5.4 代码分析 297
高手私房菜 300
技巧1:使用$.load函数 300
技巧2:使用服务器脚本检查Ajax请求 300
第16章 jQuery插件的开发与使用 301
16.1 什么是jQuery插件 302
16.1.1 jQuery插件简介 302
16.1.2 如何使用插件 302
16.2 几个好用的jQuery插件 304
16.2.1 Form插件 304
16.2.2 jQueryUI插件 305
16.2.3 clueTip插件 305
16.3 开发自己的插件 306
16.3.1 从一个简单的插件谈起 306
16.3.2 jQuery的插件机制 309
16.3.3 jQuery插件开发的方法 310
16.4 案例——模拟搜狐热门调查 311
16.5 UI插件 315
16.5.1 鼠标拖曳页面板块 315
16.5.2 拖入购物车 316
16.5.3 流行的Tab菜单 318
高手私房菜 320
技巧:插件的编写框架 320
第4篇 实战篇 322
第17章 影音视频类网站分析——优酷网 322
17.1 优酷网分析 323
17.1.1 设计分析 323
17.1.2 功能分析 326
17.2 制作自己的网站——龙马影视网 331
17.2.1 网站分析 331
17.2.2 网站设计 332
17.2.3 网站制作 334
高手私房菜 350
技巧:嵌入Flash视频 350
第18章 电子商务类网站分析——京东商城 353
18.1 京东商城分析 354
18.1.1 设计分析 354
18.1.2 功能分析 356
18.2 制作自己的网站——龙马商务网 359
18.2.1 网站分析 360
18.2.2 网站设计 360
18.2.3 网站制作 363
高手私房菜 386
技巧1:图片验证码 386
技巧2:与后台交互 388