高仿CSDN社區樹形圖

一直感覺CSDN社區的樹形結構特別的人性化,直觀化。最近做系統的時候需要用到這個樹形結構,於是模仿CSDN的樹形結構做了一個自己的樹形結構,將實現過程記錄如下,希望對讀者有用。

工慾善其事必先利其器,要模仿一個經典的樹形結構就應該參照人家是怎麼實現的,這裏用到了firebug插件,在firefox中查看了CSDN的樹形結構的組成,發現其實樹形結構就是一個個的DIV藉助img以及背景圖片拼湊而成,整理了一下思路發現其實要想達到CSDN的效果也不是很困難。

讓我們一步一步的分析

1、首先把用到的圖片下載下來,一共15個圖片,利用firebug工具可以很輕鬆的把圖片下載(另存爲)下來。

2、以上這些圖片都是在CSS文件中作爲背景圖片出現的,其他地方以空白圖片填充。

3、然後分析樹形結構的組成,首先有一個根目錄,然後每個根目錄下面有其子目錄,也就是說每個子目錄開始的時候是隱藏的只有當鼠標點擊展開的時候纔會顯示,在此過程中節點圖標以及文件夾圖標會變化。

javascript代碼:

[javascript] view plaincopyprint?
  1.         <script language="JavaScript">  
  2. function display(id) {  
  3.      eval("var div=div"+id);  
  4.      eval("var img=img"+id);  
  5.      eval("var im=im"+id);  
  6.      div.style.display=div.style.display=="block"?"none":"block";  
  7.      img.src=div.style.display=="block"?"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus1.gif":"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_plus1.gif";  
  8.      im.src=div.style.display=="block"?"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folderopen.gif":"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folder.gif";  
  9.      img.alt=div.style.display=="block"?"關閉":"展開";  
  10. }  
  11. </script>  


4、當點擊展開標籤的時候進行判斷如果爲縮略圖片則轉變爲展開圖片並且將隱藏的內容顯示,以至於達到資源管理器的效果。

全部實現代碼:

  1. <html>  
  2.     <head>  
  3.         <meta http-equiv="Content-Type" content="text/html; charset=GB18030">  
  4.       
  5.   
  6.   
  7.         <script language="JavaScript">  
  8. function display(id) {  
  9.      eval("var divdiv=div"+id);  
  10.      eval("var imgimg=img"+id);  
  11.      eval("var imim=im"+id);  
  12.      divdiv.style.display=div.style.display=="block"?"none":"block";  
  13.      img.src=div.style.display=="block"?"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus1.gif":"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_plus1.gif";  
  14.      im.src=div.style.display=="block"?"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folderopen.gif":"http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folder.gif";  
  15.      img.alt=div.style.display=="block"?"關閉":"展開";  
  16. }  
  17. </script>  
  18.     </head>  
  19.     <body class="body1" style="background-color :#E5E5E5">  
  20.     <div id="title" ></div>  
  21.         <table>  
  22.             <tr>  
  23.                 <td valign="top" nowrap="nowrap">  
  24.                     <div>  
  25.                         <img alt="展開" style="cursor:hand;" onClick="display('1');"  
  26.                             id="img1" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_plus1.gif">  
  27.                         <img id="im1" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folder.gif">  
  28.                         <a> 根目錄</a>  
  29.                         <div style="display:none;" id="div1">  
  30.                             <div style="background-image:http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line1.gif">  
  31.                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif" >  
  32.                                 <img alt="展開" style="cursor:hand;" onClick="display('2');"  
  33.                                     id="img2" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_plus1.gif">  
  34.                                 <img id="im2" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folder.gif">  
  35.                                 <a>二級目錄</a>   
  36.                                <div style="display:none;" id="div2">  
  37.                                     <div>  
  38.                                         <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  39.                                         <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  40.                                         <img alt="展開" style="cursor:hand;" onClick="display('3');"  
  41.                                             id="img3" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_plus1.gif">  
  42.                                         <img id="im3" src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/folder.gif">  
  43.                                         <a>三級目錄</a>  
  44.                                         <div style="display:none;" id="div3">  
  45.                                             <div>  
  46.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  47.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  48.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  49.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus1.gif">  
  50.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/file.gif">  
  51.                                                 <a>題目一</a>  
  52.                                             <div>  
  53.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  54.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  55.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  56.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus1.gif">  
  57.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/file.gif">  
  58.                                                   
  59.                                                 <a>題目二</a>  
  60.                                             </div>  
  61.                                             <div>  
  62.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  63.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  64.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  65.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus1.gif">  
  66.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/file.gif">  
  67.                                                 <a>題目三</a>  
  68.                                              </div>  
  69.                                              <div>  
  70.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  71.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  72.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_line4.gif">  
  73.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/_minus2.gif">  
  74.                                                 <img src="http://bbs.csdn.net/ui/scripts/System/_resource/MzTreeView/file.gif">  
  75.                                                 <a>題目四</a>  
  76.                                              </div>  
  77.                                             </div>  
  78.                                         </div>  
  79.                                     </div>                     
  80.                                 </div>                                  
  81.                             </div>  
  82.                         </div>  
  83.                     </div>  
  84.                 </td>  
  85.             </tr>  
  86.         </table>  
  87.     </body>  
  88. </html>  


實現效果如下:



原文地址:http://blog.csdn.net/beijiguangyong/article/details/7351257

發佈了27 篇原創文章 · 獲贊 25 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章