yui library workshop (yahoo! course at ncu)

107
YUI Workshop October 6, 2008 @ncu

Upload: joseph-chiang

Post on 05-Dec-2014

3.226 views

Category:

Technology


5 download

DESCRIPTION

2008/10/5 在中央大學介紹 YUI 使用者函式庫 Part 1.

TRANSCRIPT

Page 1: YUI Library Workshop (Yahoo! Course at NCU)

YUI Workshop

October 6, 2008

@ncu

Page 2: YUI Library Workshop (Yahoo! Course at NCU)

Site-Builder Workshop

March 30, 2008

http://josephj.com/entry.php?id=61

Page 3: YUI Library Workshop (Yahoo! Course at NCU)

Site-Builder Workshop

March 30, 2008

http://josephj.com/entry.php?id=61

YUI 練功房

Page 4: YUI Library Workshop (Yahoo! Course at NCU)

- -

更新公告

本練功房最新設備

Page 5: YUI Library Workshop (Yahoo! Course at NCU)

- -

更新公告

本練功房最新設備What’s New in 2.5.0

Page 6: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

Page 7: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具

Page 8: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具

Page 9: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項

Page 10: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項

Page 11: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 12: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 13: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 14: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 15: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 16: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 17: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 18: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Page 19: YUI Library Workshop (Yahoo! Course at NCU)

- -

2.5.0 增加了哪些元件?

• Cookie 工具• Resize 工具• ImageCropper 控制項• Layout Manger 控制項• Uploader 控制項

Yahoo! 所使用的特效、未來 YUI 都會有!!

Page 20: YUI Library Workshop (Yahoo! Course at NCU)

- -

新使用者?

練功安全守則

Page 21: YUI Library Workshop (Yahoo! Course at NCU)

- -

新使用者?

練功安全守則Getting Start

Page 22: YUI Library Workshop (Yahoo! Course at NCU)

- -

特別聲明

Page 23: YUI Library Workshop (Yahoo! Course at NCU)

- -

特別聲明

• 很抱歉!本練功房無以下關卡

Page 24: YUI Library Workshop (Yahoo! Course at NCU)

- -

特別聲明

• 很抱歉!本練功房無以下關卡

Page 25: YUI Library Workshop (Yahoo! Course at NCU)

- -

特別聲明

• 很抱歉!本練功房無以下關卡

• 想練習「打怪」者,請另尋高明

Page 26: YUI Library Workshop (Yahoo! Course at NCU)

- -

特別聲明

• 很抱歉!本練功房無以下關卡

• 想練習「打怪」者,請另尋高明

在主流的 OS 與 Browser,YUI 皆可正常運作

Page 27: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一

請穿著正確服裝

Page 28: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一

請穿著正確服裝DOCTYPE

Page 29: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一

請穿著正確服裝DOCTYPE

Page 30: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一:請穿著正確服裝

<!DOCTYPE HTML PUBLIC "-// W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/ strict.dtd">

Page 31: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一:請穿著正確服裝

• 不使用 Quirks Mode、擁抱 Standard Mode

<!DOCTYPE HTML PUBLIC "-// W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/ strict.dtd">

Page 32: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一:請穿著正確服裝

• 不使用 Quirks Mode、擁抱 Standard Mode

–只要有 DOCTYPE 皆為 Standard Mode

<!DOCTYPE HTML PUBLIC "-// W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/ strict.dtd">

Page 33: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則一:請穿著正確服裝

• 不使用 Quirks Mode、擁抱 Standard Mode

–只要有 DOCTYPE 皆為 Standard Mode

–但 DOCTYPE 前的空白、換行及文字皆應避免

<!DOCTYPE HTML PUBLIC "-// W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/ strict.dtd">

Page 34: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二

溫差過大易感冒

請採用洋蔥式穿法

Page 35: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二

溫差過大易感冒

請採用洋蔥式穿法Layered Semantic Markup

Page 36: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二

溫差過大易感冒

請採用洋蔥式穿法Layered Semantic Markup

Accessibility

Page 37: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

Page 38: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策

Page 39: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立

Page 40: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構

Page 41: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式

Page 42: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

Page 43: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

• YUI 所有元件的設計理念皆為如此

Page 44: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

• YUI 所有元件的設計理念皆為如此

正常情況下

Page 45: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

• YUI 所有元件的設計理念皆為如此

無 JavaScript

Page 46: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

• YUI 所有元件的設計理念皆為如此

無 CSS

Page 47: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則二:為避免天氣變化,請採用洋蔥式穿法

• NoScript、上網頻寬少、安全性政策• 結構、樣式、行為各自獨立–HTML 負責結構– CSS 負責樣式– JavaScript 負責行為

• YUI 所有元件的設計理念皆為如此

無 CSSYUI 幫開發者想、讓各位容易客製化

如果開發者也能幫使用者想、那世界就太平了

Page 48: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三

預先瞭解關卡命名

Page 49: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三

預先瞭解關卡命名JavaScript Object Notation(JSON)

Page 50: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

YAHOO.util.Connect

YAHOO.util.DataSource

YAHOO.util.Resize

YAHOO.widget.DataTable

YAHOO.widget.Uploader

YAHOO.widget.ImageCropper

Page 51: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

Page 52: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

• 預防與既存 JS 衝突,所以用了「命名空間」

Page 53: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

• 預防與既存 JS 衝突,所以用了「命名空間」

– 以 YAHOO.util 為開頭的,是無介面的「工具或函式類」

Page 54: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

• 預防與既存 JS 衝突,所以用了「命名空間」

– 以 YAHOO.util 為開頭的,是無介面的「工具或函式類」

– 以 YAHOO.widget 為開頭的,是有介面的「控制項」

Page 55: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

• 預防與既存 JS 衝突,所以用了「命名空間」

– 以 YAHOO.util 為開頭的,是無介面的「工具或函式類」

– 以 YAHOO.widget 為開頭的,是有介面的「控制項」

• 自己簡化: var YUE = YAHOO.util.Event;

Page 56: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則三:預先瞭解關卡命名

• 預防與既存 JS 衝突,所以用了「命名空間」

– 以 YAHOO.util 為開頭的,是無介面的「工具或函式類」

– 以 YAHOO.widget 為開頭的,是有介面的「控制項」

• 自己簡化: var YUE = YAHOO.util.Event;

• 自己做命名空間: var Awoo = { widget : {} } Awoo.widget.Car = function () { //…建構式的內容 }

Page 57: YUI Library Workshop (Yahoo! Course at NCU)

- -

再看一次

YAHOO.util.Connect

YAHOO.util.DataSource

YAHOO.util.Resize

YAHOO.widget.Uploader

YAHOO.widget.DataTable

YAHOO.widget.ImageCropper

Page 58: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四

安裝順風耳

Page 59: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四

安裝順風耳Event Triggering

Page 60: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

YAHOO.util.Event.on(

formEl,

‘submit’,

onFormSubmit

);

Page 61: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

Page 62: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動

Page 63: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動–使用者做了某件事、才執行某個函式。

Page 64: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動–使用者做了某件事、才執行某個函式。

• 監聽頁面上的所有 click 事件

Page 65: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動–使用者做了某件事、才執行某個函式。

• 監聽頁面上的所有 click 事件

•YAHOO.util.Event.addListener(document, ‘click’, onDocumentClick);

Page 66: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動–使用者做了某件事、才執行某個函式。

• 監聽頁面上的所有 click 事件

•YAHOO.util.Event.addListener(document, ‘click’, onDocumentClick);

•addListener = on

Page 67: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則四:安裝順風耳

• JavaScript 的原理是事件驅動–使用者做了某件事、才執行某個函式。

• 監聽頁面上的所有 click 事件

•YAHOO.util.Event.addListener(document, ‘click’, onDocumentClick);

•addListener = on•不要再用標籤中的 onclick, onmouseover…

Page 68: YUI Library Workshop (Yahoo! Course at NCU)

YAHOO.util.Event.on(

formEl,

‘submit’,

onFormSubmit

);

- -

守則四:安裝順風耳

Page 69: YUI Library Workshop (Yahoo! Course at NCU)

YAHOO.util.Event.on(

formEl,

‘submit’,

onFormSubmit

);

- -

守則四:安裝順風耳

DOM 物件參考

Page 70: YUI Library Workshop (Yahoo! Course at NCU)

YAHOO.util.Event.on(

formEl,

‘submit’,

onFormSubmit

);

- -

守則四:安裝順風耳

事件類型把 ‘on’ 拿掉

Page 71: YUI Library Workshop (Yahoo! Course at NCU)

YAHOO.util.Event.on(

formEl,

‘submit’,

onFormSubmit

);

- -

守則四:安裝順風耳

自訂事件處理函式

Page 72: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五

使用龍爪手

Page 73: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五

使用龍爪手Access DOM Elements

Page 74: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五

使用龍爪手Access DOM Elements

Page 75: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

var YUD = YAHOO.util.Dom;

var linkEl = YUD.get(‘mylink’);

var listItems =

YUD.getElementsByClassName

(‘list-item’, ‘li’);

Page 76: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

Page 77: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:

Page 78: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

Page 79: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

Page 80: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

– document.getElementsByTagName()

Page 81: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

– document.getElementsByTagName()

• YUI 提供了更多方法:

Page 82: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

– document.getElementsByTagName()

• YUI 提供了更多方法:– YAHOO.util.Dom .getElementsByClassName()

Page 83: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

– document.getElementsByTagName()

• YUI 提供了更多方法:– YAHOO.util.Dom .getElementsByClassName()

– YAHOO.util.Dom.get()

Page 84: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

• JavaScript 取得物件的方法:– document.getElementByName()

– document.getElementById()

– document.getElementsByTagName()

• YUI 提供了更多方法:– YAHOO.util.Dom .getElementsByClassName()

– YAHOO.util.Dom.get()

應避免使用

Page 85: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

var YUD = YAHOO.util.Dom;

var linkEl = YUD.get(‘mylink’);

var listItems =

YUD.getElementsByClassName

(‘list-item’, ‘li’);

Page 86: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

var YUD = YAHOO.util.Dom;

var linkEl = YUD.get(‘mylink’);

var listItems =

YUD.getElementsByClassName

(‘list-item’, ‘li’);

某標籤的 id

Page 87: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

var YUD = YAHOO.util.Dom;

var linkEl = YUD.get(‘mylink’);

var listItems =

YUD.getElementsByClassName

(‘list-item’, ‘li’);

限定 class

Page 88: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則五:使用龍爪手

var YUD = YAHOO.util.Dom;

var linkEl = YUD.get(‘mylink’);

var listItems =

YUD.getElementsByClassName

(‘list-item’, ‘li’);

限定節點名稱

Page 89: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六

使用隱形斗蓬

Page 90: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六

使用隱形斗蓬Using Anonymous Function

Page 91: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

var YUE = YAHOO.util.Event;

YUE.on(linkEl,‘click’, function(e){

//事件函式內容

});

Page 92: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

Page 93: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

• 過去我們習慣這樣寫 function:function abc() {}

Page 94: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

• 過去我們習慣這樣寫 function:function abc() {}

function 在 JS 中也是一種物件,也有 Scope 的概念。

Page 95: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

• 過去我們習慣這樣寫 function:function abc() {}

• 但改為這樣寫會比較清楚:var abc = function () {}

function 在 JS 中也是一種物件,也有 Scope 的概念。

Page 96: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

• 過去我們習慣這樣寫 function:function abc() {}

• 但改為這樣寫會比較清楚:var abc = function () {}

•僅使用一次時,連名字都不給:(function(){ //do something here…}())

function 在 JS 中也是一種物件,也有 Scope 的概念。

Page 97: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則六:使用隱形斗蓬

var YUE = YAHOO.util.Event;

YUE.on(linkEl,‘click’, function(e){

//事件函式內容

});

Page 98: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七

隨時查閱闖關配備表

Page 99: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七

隨時查閱闖關配備表JavaScript Library Dependency

Page 100: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

到底該要引用那些函式庫哩?

Page 101: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

Page 102: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

• 幾乎每個元件都有互相關連性,新手很難上手。

Page 103: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

• 幾乎每個元件都有互相關連性,新手很難上手。

• 還好 2.5.1 出了對應表:

http://developer.yahoo.com/yui/articles/

hosting/#configure

Page 104: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

• 幾乎每個元件都有互相關連性,新手很難上手。

• 還好 2.5.1 出了對應表:

http://developer.yahoo.com/yui/articles/

hosting/#configure

Page 105: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

• 幾乎每個元件都有互相關連性,新手很難上手。

• 還好 2.5.1 出了對應表:

http://developer.yahoo.com/yui/articles/

hosting/#configure

點選要用的元件

Page 106: YUI Library Workshop (Yahoo! Course at NCU)

- -

守則七:隨時查閱闖關配備表

• 幾乎每個元件都有互相關連性,新手很難上手。

• 還好 2.5.1 出了對應表:

http://developer.yahoo.com/yui/articles/

hosting/#configure

點選要用的元件

你所需要的 Library 就會顯示在此

Page 107: YUI Library Workshop (Yahoo! Course at NCU)

還有問題嗎?

要開始闖關囉!