wex5 教程 之 圖文講解 bind-css和bind-sytle的異同


 wex5作為網頁開發利器,在前台UI數據交互設計中大量使用了綁定技術,即官方視頻教學中也提到了KO,實質是數據綁定與追蹤。在前台組件的屬性中,為我們提供了兩個重要的樣式綁定屬性,bind-css和bind-style.這兩個屬性都能動態的為組件或元素綁定樣式,那么含義和用法有什么異同呢?

      先來看兩個例子:

   一..bind-css案例:

           組件屬性設置:

       

       css樣式對像:

      

      

        bind-css含義:  為組件或元素綁定樣式對像,注意是樣式對像,所以在css樣式文件中要創建樣式對像;

        bind-css格式:1,json形式,用大括號;

                                 2,左側為樣式對像名稱,用單引號(絕對不能用雙引號);

                                 3,右側為執行樣式對像條件,返回值為true或false,為true條件成立,執行該樣式

                                 4,右側綁定方法可以是數據組件,也可以是可觀察對像,也可以是變量

        bind-css缺陷:根據判斷條件,為元素動態綁定並執行樣式對像。把思維擴展一下,我如果想根據某個值,為元素動態的執行某個樣式屬性如何實現呢?比如,我得到一個5,把5給了樣式中的font-size,動態來改變樣式中的字體大小怎么實現呢?或者根據拾色器動態得到一個color值,如何動態改變樣式中的color值呢?很多朋友會說,你用css表達式獲取js對像值,來動態執行就可以了。是的,這種方法可行,效果如下:

    

       這種方法經測試,確實可行,帶來了更復雜的問題:

          一.是瀏覽器的兼容問題,可能在某些瀏覽器上執行不了;

          二 是性能能問題,在css對像中執行了expression表達式,一個屬性還好,如果有100個多樣式動態執行呢?有人會說不可能有那么多屬性,舉個反例,我在字幕設計界面,文字所有屬性都要動態改變並監控樣式,顏色,字本,大小,寬高,縮進,行高,背景,等等,估計還沒開發,就死到頁面了。

        顯然,bind-css不能實現我的效果,那么,wex5為我們提供了另外一個屬性,bind-sytle,彌補了動態樣式綁定的不足。

  二.bind-style案例:

       先看效果:

       

       

          我的意圖,通過下拉字體大小選擇框,選出字號大小,讓span里的文字動態並實時改變相應的font-size .樣式綁定方法如下:

          

          圖中color和size,為變量,其實是引入了可觀察變量,引入方法如下:

         

           bind-style含義:根據值,動態為元素執行樣式屬性;

           bind-style格式:1.json形式,用大括號,跟bind-css寫法一樣。

                                     2.屬性可以多個連用,中間用逗號分格。

                                     3. 左側為屬性鍵,必須用單引號標注(絕對不能用雙引號,跟bind-css語法一樣)。

                                     4.右側為屬性值,可以是data中取出的值,也可以是固定值。如何想用變量,那么變量要引入可觀察對像。

                                      5.可觀察對像的意義,其實就是將一個變量賦於了綁定屬性,供其它組件或元素進行綁定,類似於data綁定。綁定之后,可觀察對像中的值可以通過綁定跟蹤的方式,將變量中的值動態傳輸給綁定對像。上例中,color和size中的值動態傳輸給了span的color和size值。

                                     6.可觀察對像取值方法:XXX.get();

         通過以上兩個例子分析,可以得出:

        1.bind-css,是綁定樣式對像,而bind-style才是綁定樣式。

        2.bind-css需要預先有css對像,而fbind-style可以動態執行,執行方法更靈活,更利於UI設計。

相關視頻制作完成,上傳優酷。教學app制作中。我是邯鄲戲曲開發,tel:15175073123,qq:1017945251

 

 

 掃描二維碼,看高清教學視頻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM