JavaScript實戰——JavaScript,jQuery,HTML5,Node.j

《JavaScript實戰——JavaScript、jQuery、HTML5、Node.j》是2018年清華大學出版社出版的圖書,作者是張澤娜。

圖書簡介

《JavaScript實戰:JavaScript、jQuery、HTML5、Node.js實例大全》從最流行的前端套用場景出發,結合當下熱門技術(AJAX、jQuery UI、瀑布流、HTML5、Node.js、CSS3),用最淺顯的例子帶領大家走向IT前沿。

《JavaScript實戰:JavaScript、jQuery、HTML5、Node.js實例大全》分為5篇共24章:第一篇介紹JavaScript的基礎知識,用原生的JavaScript做表單驗證、照片展示、抽象樹控制項等;第二篇認識HTML5的流行特性,如新表單驗證、CSS3動畫、離線API及多媒體;第三篇學習強大的Canvas,它是網頁遊戲的基礎;第四篇學習用jQuery 3.x進行實戰開發;第五篇通過Node.js了解JavaScript強大的後端開發功能。

《JavaScript實戰:JavaScript、jQuery、HTML5、Node.js實例大全》是了解JavaScript技術最好的圖書,其豐富的參考資料和指南能夠成為讀者必要的參考工具,成為前端開發初學者絕佳的選擇。

作者介紹

張澤娜,深資Web開發工程師,從99年始混跡於網路,精通Web前端開發和伺服器腳本語言技術,善於撲捉潛力技術,是為數不多的程式設計師兼心理諮詢師。有10年以上Web開發經驗,具有7年以上前端系統架構和技術團隊帶領經驗,追求高效編程、快樂編程。

編輯推薦

Web前端時代來臨,市場選擇了Node.js,選擇了JavaScript,而今JavaScript變身為前後台通殺的程式語言,必將成為與Java、PHP、Python同等分量的語言。JavaScript能夠做到的事情越來越多,想使用JavaScript做更多事情的人也將越來越多。

本書使用JavaScript發展歷史上的經典範例講述JavaScript最重要的原生基礎,結合當前Web前端件開發實踐,選用jQuery和CSS3講解主流套用,展望未來前端技術的發展,加入HTML5和Node.js這兩項潛力技術,緊緊把握移動端和服務端這兩個熱門發展方向。內容圖文並茂,能使讀者耳目一新;行文妙趣怡然,閱讀輕鬆愜意;案例、代碼精雕細琢,易於復用和擴展。

圖書目錄

第一篇 JavaScript實戰篇

第1章 JavaScript概述 3

1.1 認識JavaScript 3

1.1.1 瀏覽器戰爭 3

1.1.2 寄生語言 5

1.1.3 DHTML、DOM和W3C 5

1.1.4 動態語言和靜態語言 6

1.2 配置JavaScript開發環境 7

1.2.1 EditPlus 7

1.2.2 Adobe Dreamweaver 8

1.2.3 Sublime Text 9

1.2.4 JetBrains WebStorm 9

1.2.5 Aptana Studio 10

1.3 在Web頁面中使用JavaScript 12

1.3.1 直接內嵌JavaScript代碼 12

1.3.2 引用JavaScript檔案 13

1.4 高效率的開發 13

1.4.1 熟悉語法 13

1.4.2 自動完成 15

1.4.3 使用成熟框架和便捷工具 16

1.5 相關參考 17

第2章 用JavaScript驗證表單 18

2.1 最簡單的表單驗證——禁止空白的必填項目 18

2.1.1 最簡單表單的HTML結構 19

2.1.2 綁定驗證功能 20

2.1.3 綁定驗證的另一種方式 21

2.2 處理各種類型的表單元素 23

2.2.1 input、textarea、hidden和button 23

2.2.2 checkbox、radio和select 26

2.3 用正則來校驗複雜的格式要求 30

2.3.1 認識JavaScript正則 30

2.3.2 JavaScript正則符號及其說明 31

2.3.3 正則驗證輸入信箱 33

2.4 改善用戶體驗 34

2.4.1 什麼是用戶體驗 34

2.4.2 表單的用戶體驗改善 35

2.5 相關參考 40

第3章 用JavaScript實現照片展示 41

3.1 功能設計 41

3.1.1 HTML、CSS和JavaScript的分層關係 42

3.1.2 照片展示功能設計 42

3.2 照片載入與定位 43

3.2.1 HTML代碼 43

3.2.2 CSS代碼 43

3.2.3 JavaScript代碼 46

3.3 回響滑鼠動作 48

3.3.1 回響小照片單擊動作 48

3.3.2 回響小照片上一組或下一組單擊動作 49

3.4 回響鍵盤動作 49

3.4.1 常見鍵盤按鍵對應的ASCII碼值 49

3.4.2 回響鍵盤動作 50

3.5 代碼分離帶來的紅利 52

3.6 相關參考 52

第4章 AJAX——無刷新的用戶體驗 53

4.1 認識AJAX 53

4.1.1 AJAX是技術不是程式語言 53

4.1.2 同步與異步 54

4.1.3 AJAX與JSON 55

4.1.4 AJAX是如何工作的 56

4.2 XMLHttpRequest對象的常見方法和屬性 58

4.2.1 XMLHttpRequest對象方法 59

4.2.2 XMLHttpRequest對象屬性 61

4.3 檢查待註冊的用戶名是否存在 63

4.3.1 客戶端進行檢測 63

4.3.2 伺服器端獲取數據 64

4.4 用AJAX提交數據給伺服器 65

4.4.1 客戶端部分 65

4.4.2 服務端部分 67

4.5 相關參考 68

第5章 瀑布流布局 69

5.1 瀑布流簡介 69

5.1.1 瀑布流是不是萬金油 69

5.1.2 穿過瀑布流看水簾洞 70

5.2 固定列寬的簡單瀑布流實現 72

5.2.1 簡單的HTML結構 73

5.2.2 讓瀑布流動起來 74

5.3 非固定列寬的複雜瀑布流 76

5.3.1 非固定列寬瀑布流的爭議 76

5.3.2 用Masonry實現任意非固定列寬瀑布流 77

5.4 延遲載入圖片 79

5.4.1 延遲載入是何方神聖 79

5.4.2 延遲載入運用實例 80

5.5 相關參考 83

第6章 用戶控制項的構造——目錄樹視圖 84

6.1 功能設計 84

6.2 樹視圖的最簡化實現 85

6.2.1 樹視圖的HTML結構和數據結構 85

6.2.2 用遞歸最簡化顯示樹 86

6.3 類和抽象 89

6.3.1 基於對象(Object-Based)和面向對象(Object-Oriented) 89

6.3.2 用JavaScript創建一個類 89

6.3.3 靜態屬性、方法和動態屬性、方法 90

6.3.4 JavaScript繼承 91

6.3.5 私有屬性和方法 92

6.3.6 抽象 92

6.4 複雜的樹視圖 93

6.4.1 閉包隔離變數污染 93

6.4.2 省去new關鍵字調用控制項 93

6.4.3 豐富控制項方法 94

6.5 相關參考 100

第二篇 HTML5+CSS3實戰篇

第7章 HTML5概述 103

7.1 什麼是HTML5 103

7.1.1 差點夭折的HTML5 104

7.1.2 HTML5的前世今生 104

7.1.3 HTML5理念 106

7.2 HTML5的新特性 106

7.2.1 語義化 106

7.2.2 CSS3 107

7.2.3 本地存儲/離線套用 108

7.2.4 音頻/視頻多媒體 109

7.2.5 畫布Canvas 109

7.2.6 本地檔案訪問 109

7.2.7 開放字型格式WOFF 109

7.2.8 地理位置 110

7.2.9 微數據 110

7.2.10 XMLHttpRequest Level 2 111

7.2.11 新的HTML Forms 111

7.2.12 其他特性及未來發展 111

7.3 有哪些瀏覽器支持HTML5 112

7.4 如何書寫HTML5 113

7.4.1 HTML5和XHTML的對比 113

7.4.2 HTML5書寫的誤區 114

7.5 相關參考 115

第8章 煥然一新的表單 116

8.1 E-mail和URL類型的輸入元素 116

8.1.1 各瀏覽器核心一覽 116

8.1.2 各瀏覽器對E-mail和URL類型的支持情況 117

8.1.3 全球頂級域名 118

8.1.4 E-mail類型的使用 120

8.1.5 URL類型的使用 121

8.2 數值輸入 122

8.2.1 各瀏覽器對number類型的支持情況 122

8.2.2 number類型的屬性與使用 122

8.3 日期選擇器 123

8.3.1 各瀏覽器對日期選擇器的支持情況 123

8.3.2 日期選擇器類型與使用 123

8.4 用datalist來實現自動提示 125

8.4.1 各瀏覽器對datalist的支持情況 125

8.4.2 各瀏覽器datalist的效果對比 125

8.4.3 datalist讓input自動提示更智慧型 126

8.5 相關參考 127

第9章 在Web頁面中輕鬆控制多媒體視頻和音樂 128

9.1 在頁面中插入視頻和音頻 128

9.1.1 容器和編解碼器 128

9.1.2 使用HTML5 Video和Audio API的好處 130

9.1.3 瀏覽器支持性檢測 131

9.1.4 使用video/audio元素 131

9.1.5 使用source元素來兼容 132

9.2 video/audio元素的屬性 133

9.2.1 通過HTML設定的屬性 133

9.2.2 通過JavaScript設定的屬性 134

9.3 video/audio元素的事件 135

9.3.1 video/audio元素的主要事件 135

9.3.2 設定當前播放位置 136

9.4 video/audio元素的方法 137

9.4.1 通過JavaScript控制的方法 137

9.4.2 滑鼠懸停播放,移開暫停 138

9.5 綜合套用——打造屬於自己的視頻播放器 138

9.5.1 界面設計 138

9.5.2 CSS3+HTML布局 139

9.5.3 用JavaScript控制播放器 141

9.6 相關參考 147

第10章 用CSS3畫一個哆啦A夢 148

10.1 CSS3簡介 148

10.1.1 CSS3歷史情況 148

10.1.2 CSS3的支持情況 149

10.2 陰影和文本陰影 149

10.2.1 陰影(box-shadow) 150

10.2.2 文本陰影(text-shadow) 151

10.3 圓角 153

10.3.1 圓角(border-radius)屬性 153

10.3.2 圓角變圓與半圓 154

10.4 漸變 154

10.4.1 線性漸變 154

10.4.2 放射漸變 156

10.5 綜合套用——畫一個哆啦A夢 157

10.5.1 頭部和臉部 158

10.5.2 脖子和鈴鐺 162

10.5.3 身體和四肢 163

10.5.4 讓眼睛動起來 168

10.6 相關參考 169

第11章 酷炫的CSS3動畫效果—3D旋轉方塊 170

11.1 文本描邊和文本填充色 170

11.1.1 文本描邊(text-stroke) 171

11.1.2 文本填充(text-fill-color) 171

11.2 變形和變形原點 172

11.2.1 變形(transform) 172

11.2.2 變形原點(transform-origin) 175

11.3 簡單套用——飛行旋轉文本 176

11.3.1 過渡動畫(transition) 177

11.3.2 自定義動畫(animation)和@keyframes 178

11.3.3 飛行旋轉的文本 179

11.4 綜合套用——3D旋轉方塊 181

11.5 相關參考 183

第12章 一個可以離線的內容管理系統 184

12.1 功能設計 184

12.2 Web儲存和套用快取 185

12.2.1 本地存儲(LocalStorage) 185

12.2.2 會話存儲(SessionStorage) 186

12.2.3 應用程式快取 186

12.2.4 搭建支持套用快取的伺服器 187

12.2.5 神奇的manifest file檔案清單 188

12.3 HTML5本地存儲 190

12.3.1 Web IndexedDB 190

12.3.2 Web SQL Database 193

12.4 編寫內容管理系統 195

12.4.1 可離線的HTML、JS和CSS 195

12.4.2 添加數據 196

12.4.3 列表和查詢數據 197

12.4.4 更新數據 198

12.4.5 刪除數據 199

12.4.6 前端互動 199

12.5 相關參考 200

第13章 SVG動畫 201

13.1 什麼是SVG 201

13.1.1 SVG的歷史 201

13.1.2 SVG的優缺點 202

13.1.3 SVG的Hello World 203

13.1.4 SVG的調用方式 204

13.2 SVG形狀 204

13.2.1 矩形(rect) 205

13.2.2 圓形(circle) 206

13.2.3 橢圓(ellipse) 206

13.2.4 線(line) 206

13.2.5 折線(polyline) 207

13.2.6 多邊形(polygon) 207

13.2.7 路徑(path) 207

13.3 SVG濾鏡 208

13.3.1 高斯模糊濾鏡(feGaussianBlur) 209

13.3.2 色彩轉換濾鏡(feColorMatrix) 209

13.3.3 位移濾鏡(feOffset) 210

13.4 SVG漸變 211

13.4.1 線性漸變(linearGradient) 211

13.4.2 放射漸變(radialGradient) 212

13.5 製作簡單的SVG動畫——太陽系 213

13.5.1 SVG繪製的太陽和地球公轉軌跡 214

13.5.2 貼圖地球和地月系統 214

13.5.3 太陽系 215

13.6 相關參考 216

第三篇 HTML5 Canvas實戰篇

第14章 Canvas的初步套用—再畫一個哆啦A夢 219

14.1 什麼是Canvas 219

14.1.1 Canvas起源 219

14.1.2 Canvas的支持情況 220

14.1.3 Canvas優缺點及與SVG的對比 220

14.1.4 Canvas與JavaScript 221

14.1.5 Canvas的發展 222

14.1.6 Canvas標籤的使用 222

14.2 繪製形狀和文字 223

14.2.1 直線(lineTo) 223

14.2.2 矩形(rect) 225

14.2.3 圓(arc) 227

14.2.4 弧和圓角(arcTo) 227

14.2.5 貝塞爾曲線(quadraticCurveTo) 229

14.2.6 繪製文本(fillText)和strokeText 230

14.3 顏色、風格和陰影 231

14.3.1 線性漸變(createLinearGradient) 231

14.3.2 放射漸變(createRadialGradient) 233

14.3.3 陰影 234

14.4 再畫一個哆啦A夢 235

14.4.1 準備工作 235

14.4.2 繪製頭和臉 235

14.4.3 繪製眼睛和鼻子 236

14.4.4 繪製嘴巴和鬍鬚 237

14.5 相關參考 238

第15章 Canvas的高級套用—製作飛行遊戲 239

15.1 轉換 239

15.1.1 放大和縮小 239

15.1.2 平移和旋轉 241

15.1.3 矩陣轉換 243

15.2 合成 244

15.2.1 用Photoshop控制圖形合成 244

15.2.2 使用Canvas控制圖形合成 245

15.3 碰撞檢測 247

15.3.1 圓形碰撞檢測 247

15.3.2 矩形碰撞檢測 248

15.4 實現打飛機遊戲 248

15.4.1 打飛機遊戲設計 249

15.4.2 移動的星空 249

15.4.3 載入資源 251

15.4.4 我方戰機、敵機和子彈 251

15.4.5 讓遊戲動起來 254

15.5 相關參考 255

第16章 Canvas的另類套用—壓縮和解壓 256

16.1 繪製圖片 256

16.1.1 繪製外部載入的圖片 257

16.1.2 Canvas給視頻加字幕 258

16.2 像素級操作 259

16.2.1 反轉顏色—底片效果 260

16.2.2 灰度控制——黑白灰效果 261

16.2.3 透明度控制 262

16.2.4 倒影 264

16.3 實現壓縮解壓功能 266

16.3.1 載入點陣圖 266

16.3.2 壓縮點陣圖 266

16.3.3 保存到本地 267

16.4 相關參考 268

第四篇 jQuery實戰篇

第17章 jQuery簡介 271

17.1 什麼是jQuery 271

17.1.1 jQuery的歷史 272

17.1.2 為什麼要使用jQuery 273

17.2 編寫jQuery代碼 275

17.2.1 下載jQuery 275

17.2.2 簡單套用jQuery 276

17.2.3 調試jQuery程式 277

17.3 基於jQuery的UI外掛程式 280

17.3.1 基於jQuery的擴展——jQuery UI外掛程式 280

17.3.2 下載jQuery UI外掛程式 281

17.3.3 簡單套用jQuery UI外掛程式 284

17.3.4 其他UI框架 286

17.4 相關參考 290

第18章 用動態效果來回響瀏覽者 291

18.1 jQuery庫基礎 291

18.1.1 jQuery庫的核心方法——$() 291

18.1.2 jQuery庫延遲等待載入模式 293

18.1.3 jQuery對象與DOM對象間的轉換 294

18.2 基礎選擇器 295

18.2.1 簡單選擇器 295

18.2.2 進階選擇器 298

18.2.3 高級選擇器 303

18.3 過濾選擇器 307

18.3.1 jQuery所支持的過濾器 307

18.3.2 頁面中的經典導航條 310

18.4 操作DOM對象 313

18.4.1 jQuery關於元素的操作 313

18.4.2 關於表的經典效果 315

18.4.3 jQuery關於節點的操作 317

18.4.4 超級連結提示效果 319

18.4.5 圖片預覽效果 320

18.5 回響事件 323

18.5.1 綁定和刪除事件 323

18.5.2 jQuery所支持的事件和事件類型 325

18.5.3 表單動態效果 328

18.6 實現動態效果 334

18.6.1 jQuery庫所支持的動畫方法 334

18.6.2 實現可摺疊的列表 336

18.6.3 淡入淡出效果 338

18.7 相關參考 340

第19章 用戶互動操作、進度條和滑動條美化頁面 341

19.1 頁面中的互動操作 341

19.1.1 jQuery UI所支持的拖動組件 341

19.1.2 jQuery UI所支持的拖放組件 343

19.1.3 模擬Windows系統“資源回收筒” 345

19.2 頁面中的進度條效果 349

19.2.1 jQuery UI所支持的進度條工具集 349

19.2.2 實現進度條效果 350

19.3 頁面中滑動條效果 352

19.3.1 jQuery UI所支持的滑動條工具集 352

19.3.2 實現圖片滑塊滾動條效果 354

19.3.3 實現簡單顏色調色器 357

19.4 相關參考 359

第20章 用工具集實現酷炫的頁面 360

20.1 實現“手風琴”效果 360

20.1.1 jQuery UI所支持的摺疊面板工具集 360

20.1.2 實現經典的導航選單 362

20.2 設計頁面中各種對話框效果 363

20.2.1 jQuery UI所支持的對話框工具集 364

20.2.2 實現彈出和確認信息對話框效果 365

20.3 處理頁面中的日期 368

20.3.1 jQuery UI所支持的日期選擇器工具集 368

20.3.2 實現日期輸入框 371

20.3.3 實現選取時間段功能 372

20.4 實現幻燈和分頁效果 374

20.4.1 jQuery UI所支持的選項卡工具集 374

20.4.2 經典的選項卡效果 375

20.4.3 實現幻燈效果 377

20.4.4 實現分頁效果 379

20.5 相關參考 382

第五篇 Node.js 實戰篇

第21章 Node.js簡介 385

21.1 什麼是Node.js 385

21.1.1 Node.js是平台 385

21.1.2 Node.js不是萬能的 386

21.2 獲取、安裝和配置Node.js 388

21.2.1 Node.js的獲取 388

21.2.2 Node.js的安裝 389

21.2.3 Node.js的配置 390

21.3 Node.js與其他伺服器腳本語言的比較 391

21.4 Node.js與客戶端JavaScript腳本的比較 392

21.5 相關參考 393

第22章 構造一個最簡單的Web伺服器 394

22.1 Node.js中腳本檔案的組織 395

22.1.1 CommonJS規範 395

22.1.2 Node.js中的模組 395

22.1.3 HTTP協定 396

22.2 建立服務、路徑處理與回響 398

22.2.1 用6行代碼創建的Web伺服器 398

22.2.2 讓Web伺服器回響和處理不同路徑 399

22.3 異步與檔案處理 401

22.3.1 智慧型的404提示 401

22.3.2 檔案格式MIME協定 404

22.3.3 回響不同類型的檔案 406

22.4 處理檔案上傳 409

22.4.1 安裝並使用Node.js第三方模組 409

22.4.2 用node-formidable處理上傳圖片 411

22.5 相關參考 413

第23章 基於Express框架的HTTP伺服器 414

23.1 引入Express框架 414

23.1.1 Express與Connect 414

23.1.2 在Node.js環境下安裝Express 415

23.1.3 用Express搭建簡單Web套用 416

23.2 Express的程式控制 418

23.2.1 模板引擎ejs 418

23.2.2 中間件(middleware) 422

23.3 Express的請求解析 423

23.3.1 路由routes 423

23.3.2 Request對象 424

23.4 Express的回響控制 425

23.4.1 write、end、send輸出回響到客戶端 426

23.4.2 JSON、JSONP輸出回響到客戶端 427

23.4.3 設定cookie 428

23.4.4 其他回響控制 428

23.5 相關參考 428

第24章 構造一個基於Socket的聊天系統 429

24.1 建立Socket伺服器 429

24.1.1 安裝Socket.IO 430

24.1.2 聊天室服務端 431

24.2 HTML5中的Web Socket 432

24.2.1 Web Socket協定 432

24.2.2 Nginx對Web Socket的支持 433

24.2.3 Web Socket常用API 433

24.3 在Node.js中運算元據庫 434

24.3.1 操作MS SQL Server 434

24.3.2 操作MySQL 436

24.3.3 操作MongoDB 440

24.4 完善聊天系統 442

24.4.1 聊天室客戶端 442

24.4.2 Socket.IO 常見API 443

24.5 相關參考 444

相關詞條

相關搜尋

熱門詞條

聯絡我們