HTML Component(HTC) 小應用

字號:


    在微軟IE 5.0版本的瀏覽器發(fā)布以前,網(wǎng)頁編程中面對的最大挑戰(zhàn)就是不能輕易地創(chuàng)建組件,以達到代碼重用和多頁面共享的目的。這個問題一直困擾著DHTML(動態(tài) HEML)的網(wǎng)頁編程者。他們只能不斷地重復書寫HTML、CSS和javascript的代碼,以滿足多個頁面上的重復或相似的功能。自IE 5.0瀏覽器發(fā)布后,這種情況得到了改善,它帶給我們一個新的指令組合方法,可把實現(xiàn)特定功能的代碼封裝在一個組件內(nèi),從而實現(xiàn)多頁面的代碼重用,使網(wǎng)頁編程進入一個全新的天地。這個新的技術就是我們要談到的DHTML中的“行為”(Behaviors)。
    下面是我做的一個小例子:
    font_effect.htc
    代碼如下:
    ////////////////////////“行為”文檔開始////////////////////////////
    //給“行為”增加四個鼠標事件
    <PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()"/>
    <PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()"/>
    <PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()"/>
    <PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()"/>
    //給“行為”定義二個方法,注意NAME的值里不能加括號
    <PUBLIC:METHOD NAME="move_down"/>
    <PUBLIC:METHOD NAME="move_right"/>
    <script language ="JScript">
    //定義一個保存字體顏色的變量
    var font_color;
    //定義向下移動文字的方法
    function move_down()
    {
    element.style.posTop += 10;
    }
    //定義向右移動文字的方法
    function move_right()
    {
    element.style.posLeft += 10;
    }
    //定義鼠標onmouseup事件的調(diào)用函數(shù)
    function font2blue()
    {
    if (event.srcElement == element)
    {
    element.style.color = "blue";
    }
    }
    //定義鼠標onmousedown事件的調(diào)用函數(shù)
    function font2yellow()
    {
    if (event.srcElement == element)
    {
    element.style.color = "yellow";
    }
    }
    //定義鼠標onmouseover事件的調(diào)用函數(shù)
    function glowit()
    {
    if (event.srcElement == element)
    {
    font_color=style.color;
    element.style.color = "white";
    element.style.filter = "glow(color=red, strength=2)";
    }
    }
    //定義鼠標onmouseout事件的調(diào)用函數(shù)
    function noglow()
    {
    if (event.srcElement == element)
    {
    element.style.filter = "";
    element.style.color = font_color;
    }
    }
    </script>
    //////////////////“行為”文檔結束///////////////////////////////
    htcExample.htm
    代碼如下:
    <html>
    <head>
    <title>行為效果演示</title>
    <style>
    .myfilter{behavior:url(font_effect.htc);position:relative;width:880}
    </style>
    </head>
    <body>
    <button onclick="myspan.move_right();">向右移動文字</button>
    <button onclick="myspan.move_down();">向下移動文字</button>
    <br /><br />
    <span id="myspan" class='myfilter'>鼠標指向后產(chǎn)生輝光,同時文字變白;按下鼠標后文字變黃;抬起鼠標后文字變藍;鼠標離開后文字恢復原狀</span>
    </body>