色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

打造基于jQuery的高性能TreeView

  項目中經(jīng)常會遇到樹形數(shù)據(jù)的展現(xiàn),包括導航,選擇等功能,所以樹控件在大多項目中都是必須的。那一個實用的樹應該具備什么功能呢?

  根據(jù)我的項目實踐情況,主要是幾個關鍵點:

  1:支持靜態(tài)的樹,即一次性將全部數(shù)據(jù)加載到客戶端。

  2:異步樹,即一次只加載一級或若干級節(jié)點,子節(jié)點可以異步加載數(shù)據(jù)。

  3:Checkbox樹(可能是靜態(tài)樹也可能是異步樹),用于選擇(如選擇組織機構,選擇數(shù)據(jù)字典項)等,最好是能夠支持節(jié)點級聯(lián)(這個是難點)

  4:能夠承載大數(shù)據(jù)量,并性能表現(xiàn)優(yōu)異

  5:能夠在主流瀏覽器中運行良好

  那我要打造的TreeView就是為了實現(xiàn)這個5個主要指標的。

  先來看下效果圖

image

  上圖是中國行政區(qū)域的數(shù)據(jù)樹,總共得節(jié)點是3500+。

  那么我們要開工了;

  1:第一個確定的節(jié)點Dom結構(即用什么樣的HTML來構建節(jié)點)  

  • 比較土的是table套table的(樣式上好控制,但是大數(shù)據(jù)量,和層次較深的樹,這種結構肯定頂不住的)
  • 還有一種是比較新鮮的UL套LI的方式,這是現(xiàn)下很多書采取的方式如Jquery.treeview就是采用的這種格式,好處比較明顯就是結構簡潔明了,
    而且在不支持Js的瀏覽器上,同樣也能呈現(xiàn)出樹的形狀(這種情況其實咱可以忽略),但是Jquery.treeview的節(jié)點在IE下,特別是IE6下無法被內(nèi)部元素撐開,(IE7,8當達到一定深度時無法撐開),請奇怪的現(xiàn)象(我猜測是因為使用padding來做縮進,margin-left:負值來控制圖標位置有關,但是修改起來難度也較大),在這種情況下書會變形(Jquery.treeview)就有這種問題,只能通過設置節(jié)點的width來解決。

image

  JQuery.treeview的節(jié)點結構

image

  Jquery.TreeView  IE6 下 展開第三級即出現(xiàn)錯位

image IE8下展開到第5級

  • 還有一些是div套table的方式,CSDN的導航樹就是這種,是種折中的方法(節(jié)點也不算太復雜,而且CSS也比較好寫),如下圖所示
    image

 

  而我采用的也是第二種方式,但是縮進采用了填空的方式,即縮進的位置用空白的圖片填充來避免Jquery.treeview的問題

image

  我的樹節(jié)點結構

  確定了節(jié)點的HTML我們就可以來寫CSS了。有了效果圖,有個節(jié)點結構接著就編寫CSS了

  下面是CSS的完整代碼

Code

it知識庫打造基于jQuery的高性能TreeView,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 密云县| 工布江达县| 抚远县| 南江县| 丰宁| 松江区| 连平县| 株洲市| 徐闻县| 乐至县| 马鞍山市| 扶风县| 无棣县| 通海县| 灵台县| 平邑县| 抚顺县| 砀山县| 堆龙德庆县| 彰化县| 德州市| 阳东县| 张家港市| 五家渠市| 龙山县| 马龙县| 长沙县| 南陵县| 沂源县| 云梦县| 松溪县| 海口市| 平南县| 新巴尔虎右旗| 昌吉市| 裕民县| 霍林郭勒市| 霞浦县| 合水县| 锦州市| 贺州市|