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

打造基于jQuery的高性能TreeView

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

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

  1:支持靜態的樹,即一次性將全部數據加載到客戶端。

  2:異步樹,即一次只加載一級或若干級節點,子節點可以異步加載數據。

  3:Checkbox樹(可能是靜態樹也可能是異步樹),用于選擇(如選擇組織機構,選擇數據字典項)等,最好是能夠支持節點級聯(這個是難點)

  4:能夠承載大數據量,并性能表現優異

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

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

  先來看下效果圖

image

  上圖是中國行政區域的數據樹,總共得節點是3500+。

  那么我們要開工了;

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

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

image

  JQuery.treeview的節點結構

image

  Jquery.TreeView  IE6 下 展開第三級即出現錯位

image IE8下展開到第5級

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

 

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

image

  我的樹節點結構

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

  下面是CSS的完整代碼

Code

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

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

主站蜘蛛池模板: 江油市| 二手房| 张家口市| 高台县| 胶南市| 邵阳县| 南城县| 通辽市| 安塞县| 正宁县| 梁河县| 棋牌| 洮南市| 石阡县| 秀山| 赣榆县| 望江县| 武夷山市| 嘉禾县| 牟定县| 卢湾区| 商丘市| 苍山县| 广丰县| 浦东新区| 海安县| 康定县| 绥德县| 济阳县| 浑源县| 德保县| 海城市| 莒南县| 澄江县| 漾濞| 沙河市| 绥中县| 满洲里市| 柘城县| 金山区| 鹤岗市|