YAHOO工具庫

1.1.     YAHOO工具庫提供的方法

l         namespace

用於創建一個全局的命名空間,使用YUI時,首先會自動創建widget,util,example三個命名空間,使用時也可以自定義命名空間。類似於在程序中建了了一個static變量。

l         lang

javascript擴展的語言工具,用於判別對象的類型。

l         lang.extend

用於從一個對象上擴展出另一個對象,模擬了類的繼承的方式,但不同的是,在創建子對象時,父對象的構造函數不會自動調用。父對象的引用存放在了子對象的supperclass中,構成了一個鏈狀繼承關係。在2.2.2的版本中,YAHOO.lang.extendYAHOO.extend指向同一函數對象。

l         lang.augment

將一個對象的屬性(部分或全部)複製到另一個對象,但並非真正意義上的複製,只是一種引用。YAHOO.augment=YAHOO.lang.augment

l         log

用來調試的一個工具,將信息顯示到log控件。

l         env

環境信息和YUI組件信息

l         YUI_config.listener

可以定義自己的回調函數,當有新的YUI組件加載到頁面時將會調用YUI_config.listener指向的函數。

 

2.            YUI提供的Dom操作

特點:對於大部分DOM操作提供了批量操作的功能,而對用戶只需使用統一的函數接口就能完成單個或批量的操作,主要得益於DOM內部的batch方法。

 

2.1.     Element的查找

YAHOO.util.Dom.get(element)

調用document.getElementById(element),獲取指定的頁面元素。

 

YAHOO.util.Dom.getElementsBy(method,tagName,rootNode)

rootNode的子節點中按照用戶提供的method方法在所有標籤爲tagNameelement中查找符合條件的節點。rootNode不指定則在整個Document中查找,method是一個method(elementID)類型的函數對象,該函數對象的返回值爲Boolean值。

 

YAHOO.util.Dom.getElementsByClassName(className, tagName, rootNode)

返回指定根節點下所有標籤爲tagName,classclassNameDOM節點數組。根節點爲可選參數,不指定時在整個頁面中查找

 

YAHOO.util.Dom.inDocument(el)

判斷元素el是否在當前的DOM中,支持批量操作。

 

2.2.     樣式控制和訪問

YAHOO.util.Dom.hasClass(element, className)

判斷element標籤上是否指明瞭classNameclass,支持批量操作

 

YAHOO.util.Dom.addClass(element, className)

給指定標籤增加名爲classNameclass,支持批量操作.

 

YAHOO.util.Dom.removeClass(element, className)

刪除element上的名爲classNameclass,支持批量操作

 

YAHOO.util.Dom.replaceClass(element, oldClassName, newClassName)

替換element上的oldClassName樣式爲newClassName,支持批量操作

 

YAHOO.util.Dom.getStyle(element, property)

獲取elementstyle中的property屬性,支持批量操作

 

YAHOO.util.Dom.setStyle(element,property,pValue)

設置elementstyleproperty屬性爲pValue,支持批量操作

 

注:本節中的class指的是CSS中定義的class

 

2.3.     位置控制和訪問

位置控制的相關函數

YAHOO.util.Dom.setX

YAHOO.util.Dom.setY

YAHOO.util.Dom.setXY

YAHOO.util.Dom.getX

YAHOO.util.Dom.getXY   返回元素座標 [ left,top ]

YAHOO.util.Dom.getRegion

獲取元素的座標Region對象{left,top,right,bottom}

可支持批量操作

 

獲取頁面可視面積的高度和寬度

YAHOO.util.Dom.getClientWidth

YAHOO.util.Dom.getClientHeight

 

獲取Document的高度和寬度

YAHOO.util.Dom.getDocumentWidth

YAHOO.util.Dom.getDocumentHeight

 

獲取頁面可視區域的高度和寬度(不包含滾動條)

YAHOO.util.Dom.getViewportHeight

YAHOO.util.Dom.getViewportWidth

 

Region對象:{left,top,right,bottom}

YUI提供的一個對象,用於完成多個矩形區域間的計算(如相交,包含。

YAHOO.util.Region.contains(region)

判斷是否包含了region區域

YAHOO.util.Region.getArea

計算面積

YAHOO.util.Region.intersect(region)

計算與region區域的交迭區域

YAHOO.util.Region.union(region)

計算與region區域求並集(即包含兩個區域的最小區域)

 

Point對象:{x,y}

YUI提供的對象,用於定義座標點。

3.            YUI提供的element工具

YUI提供了一組操作頁面element的工具,是對標準HTML elements的一種封裝,能夠直接通操作element的實例,使得增加監聽器,操作DOM,設置/獲取element的屬性等工作變得很簡單。部分方法是直接調用YUIDOM工具集提供的方法,如對class操作的相關方法、獲取element的相關方法等等,在此不再重複。

YAHOO.util.Element(elementId)

創建element,如果elementIdDocument中還不存在,仍然可以通過YUI對他進行屬性設置,增加監聽器等操作, Element工具集會自動等到該elementId可用後執行這些操作,實際上真正的操作是等到contentReady事件發生後才進行的。

 

YAHOO.util.Element.appendChild(child)

DOM結構中element下增加子節點

 

YAHOO.util.Element.getElementsByTagName(tag)

獲取tagNametag的所有頁面元素

 

YAHOO.util.Element.hasChildNodes

判斷是否具有子節點

 

YAHOO.util.Element.insertBefore(element, before)

在元素before前插入element

 

YAHOO.util.Element.removeChild(child)

刪除DOM中元素的child子節點

 

YAHOO.util.Element.replaceChild (newNode , oldNode)

替換子節點oldNodenewNode

4.            YUI提供的Event工具集

YUI提供的Event工具集簡化了瀏覽器中事件驅動程序的編寫,提供了一種簡單的接口來定製事件和檢查瀏覽器中的event對象。YUI事件工具集提供了自定義事件對象(Custom Event),通過自定義事件對象可以發佈自己感興趣的時刻或事件,頁面中的YUI組件能夠響應這些自定義的事件並做出迴應。

YUI對事件響應的順序:通過YUI Event工具集添加的事件,默認是在冒泡過程中執行事件處理函數的。從DOM節點上來說,是從子節點向根節點響應事件。

 

Event需要的引入

<!-- Dependency -->

build/yahoo/yahoo-min.js

<!-- Event source file -->

build/event/event-min.js

 

EventCustom Event分別定義在YAHOO.util.EventYAHOO.util.CustomEvent

Event工具集提供的方法

YAHOO.util.Event.addListener(element,eventType,fn,obj,override)

參數:

element:爲綁定事件的元素id可以是一個數組,以支持批量操作

eventType:爲事件類型

fn:爲事件響應的回調函數

obj:當overridetrue時,爲回調函數傳入的參數對象;當overridefalse時,該參數被忽略。

override

返回值類型:Boolean

功能:給指定的element綁定事件響應函數

 

 

YAHOO.util.Event.removeListener:function(element,eventType,fn)

參數:

element:爲綁定事件的元素id,

eventType:事件類型

fn:爲事件響應函數

返回值類型:Boolean

功能:給指定的element解除綁定事件

 

YAHOO.util.Event.purgeElement ( el , recurse , sType )

參數:

el:爲綁定事件的元素id,

recurseBoolean值,是否解除子節點的事件綁定

sType:事件類型

返回值類型:Boolean

功能:給指定的element解除綁定的同一類型的事件,也可以解除子節點上綁定的這一類型的事件

 

YAHOO.util.on

addListener的函數別名

 

YAHOO.util.Event.onAvailable( p_id , p_fn , p_obj , p_override )

參數:

p_id:爲綁定事件的元素id,

p_fn:爲事件響應函數

p_obj:同addListenerobj參數

p_override:同addListeneroverride參數

返回值類型:

功能:當指定的elementp_id出現時,執行事件響應函數。如果在頁面初始化之前執行這一函數,當頁面加載時(可能還未完成時),就會執行響應的事件響應函數;如果放在頁面加載之後執行這一函數,將以固定的時間輪詢,當element可用時響應這一事件。這個輪詢的的時間是可以配置的,缺省的時間是10秒一次。

 

YAHOO.util.Event.onContentReady( p_id , p_fn , p_obj , p_override )

參數:

p_id:爲綁定事件的元素id,

p_fn:爲事件響應函數

p_obj:同addListenerobj參數

p_override:同addListeneroverride參數

返回值類型:

功能:%3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章