YUI 研究 Dom 模組

2021-04-16 02:28:02 字數 4479 閱讀 2275

yahoo.util.region

乙個物件所在的矩形區域的表示

它由top、right、bottom和left構成。

yahoo.util.region.contains(region)

引數是否整個包含在物件裡面

yahoo.util.region.getarea()

取得區域面積

yahoo.util.region.intersect(region)

取得與引數相交的區域

yahoo.util.region.union(region)

取得最小的能同時包含物件和引數的區域

yahoo.util.region.tostring()

列印出top、right、bottom和left

yahoo.util.region.getregion(el)

得到el所佔據的區域

yahoo.util.point

代表乙個點

它由x和y構成;

它的prototype是region的乙個例項。

yahoo.util.dom

為dom操作提供輔助方法

內部快取了樣式連字元的轉換結果和用於class查詢的reg;

所屬函式的el可以是string、htmlelement和array的一種。

yahoo.util.dom.get(el)

返回乙個htmlelement引用

yahoo.util.dom.getstyle(el, property)

返回el中property相關樣式的值

yahoo.util.dom.setstyle(el, property, val)

設定el中property相關樣式的值

getstyle先查詢元素style屬性中的樣式,如果沒有在該style屬性中定義property屬性,則查詢樣式表中對元素對應property的定義;

遮蔽了ie document.defaultview.getcomputedstyle和其他瀏覽器document.defaultview.getcomputedstyle的差異;

在ie中把float轉換成stylefloat,其他則轉換成cssfloat;

在ie中把opacity轉換為filter表示,並把filter的值域從0-100轉換成0-1;

遮蔽瀏覽器在初始化階段進行。

yahoo.util.dom.getxy(el)

yahoo.util.dom.getx(el)

yahoo.util.dom.gety(el)

返回el在整個頁面中的座標

如果el不在dom tree中或display為none,返回false;

在ie 中用getboundingclientrect加上scrollleft或scrolltop計算座標;在其它瀏覽器中,則把el的 offsetleft和offsettop一層層地往上加。在safari中,如果其中一層的position為absolute,則結果要減去body 的offset。還有在opera中當display為inline或table-row時,要減去scroll。

yahoo.util.dom.setxy(el, pos, noretry)

yahoo.util.dom.setx(e, x)

yahoo.util.dom.sety(el, y)

設定el在整個頁面中的座標

如果el不在dom tree中或display為none,返回false;

如果el的postion為static,則把它設定為relative,然後再進行計算;

此方法主要是通過設定el的left和top兩個樣式來實現的。

演算法是用pos減去getxy(el)加上delta。當display為relative且left為auto時,不用設定它的left,所以為delta為0。但當display為absolute

且left為auto

時,實際上el離offsetparent是有乙個距離的,所以把delta設定為offsetleft。top同上;

此函式缺省會在第一次設定完el的xy之後用getxy檢查一下當前的xy和pos是否相等,不相等的話會再呼叫setxy一次。

把noretry設為ture可以不執行此操作。

yahoo.util.dom.getregion(el)

得到el的region

yahoo.util.dom.getclientheight()

yahoo.util.dom.getclientwidth()

已被getviewportwidth和getviewportheight代替。

yahoo.util.dom.getviewportheight()

yahoo.util.dom.getviewportwidth()

得到viewport(滾動條不算)的寬和高

獲 取高度時,如果瀏覽器是safari或opera,則通過self.innerheight獲取;ff和ie如果在標準模式下,則 document.documentelement.clientheight;在quirk模式下,則 document.body.clientheight;

獲取寬度時,如果瀏覽器是safari,則通過self.innerwidtht獲取;opera、ff和ie如果在標準模式下,則 document.documentelement.clientwidth;在quirk模式下,則 document.body.clientwidth。

得到指定classname的所有htmlelement元素

yahoo.util.dom.hasclass(el, classname)

yahoo.util.dom.addclass(el, classname)

yahoo.util.dom.removeclass(el, classname)

yahoo.util.dom.replaceclass(el, oldclassname, newclassname)

對class操作的工具函式

yahoo.util.dom.generate(el, prefix)

生成id

如果el不為空,則把生成的id賦給它;

prefix的預設值是"yui-gen";

此方法使用yahoo.env._id_counter作為生成id的計數器。

yahoo.util.dom.getancestorby(node, method)

獲取最近乙個通過method測試的祖先

node不能為id。

yahoo.util.dom.getancestorbyclassname(node, classname)

獲取最近乙個class為classname的祖先

yahoo.util.dom.getancestorbytagname(node, tagname)

獲取最近乙個標記名為tagname的祖先

yahoo.util.dom.getprevioussiblingby(node, method)

獲取最近乙個

通過method測試的左兄弟

yahoo.util.dom.getprevioussibling(node)

獲取最近乙個

左兄弟yahoo.util.dom.getnextsiblingby(node, method)

獲取最近乙個

通過method測試的右兄弟

yahoo.util.dom.getnextsibling(node)

獲取最近乙個

右兄弟yahoo.util.dom.getfirstchildby(node, method)獲取第

乙個通過method測試的子元素

yahoo.util.dom.

getfirstchild

(node)獲取第

乙個子元素

yahoo.util.dom.getlastchildby(node, method)

獲取最後

乙個通過method測試的子元素

yahoo.util.dom.

getlastchild

(node)

獲取最後

乙個子元素

yahoo.util.dom.getchildrenby(node, method)

獲取通過method測試的所有子元素

yahoo.util.dom.

getchildren

(node)

獲取所有子元素

yahoo.util.dom.getdocumentscrollleft()

獲取文件向右滾動的距離

yahoo.util.dom.

getdocumentscrolltop

()獲取

文件向下滾動的距離

yahoo.util.dom.insertbefore(newnode, newnode)

yahoo.util.dom.insertafter(newnode, newnode)

節點插入工具方法

yahoo.util.dom.getclientregion()

獲取整個瀏覽器viewport的region

python CSV模組 研究1

逗號分隔值 comma sparated value,csv 通常用在電子 與資料庫最常用的匯入和匯出格式。也是電子 軟體與純文字之間互動資料。實際上,csv都不算是乙個真正的結構化資料,csv檔案內容僅僅是一些用逗號分隔的原始字串值。csv模組以reader和writer物件來讀取和寫入序列。程式...

YUI中的模組化使用對話方塊

最近在試著用yui 2.8.1,想到乙個將對話方塊模組化的方法,拿出來分享一下。目的是這樣的,假設在我們的應用程式中,有多個頁面要使用乙個一樣的對話方塊,那麼 每個頁面引入一樣的html和js是很不好的實現方式,這時我們可以將對話方塊的html儲存 為乙個單獨的文字檔案,在頁面中動態地載入這段htm...

利用mmc test c研究mmc模組

近日開始研究mmc模組。老是看 不免睏意來襲,為了克服睏意,可以通過一些小的試驗來加深對該模組的理解。第一步 首先,自己建立了乙個小的測試模組,通過獲取mmc模組初始化時sdhci host結構體的指標 初始化時就將這些sdhci host結構的指標儲存在乙個陣列,並提供介面匯出該陣列首位址供其它模...