Skip to main content

Collapsible lists in JavaScript


Long nested lists on web pages can be difficult to understand, especially if the visitor must scroll to see the entire list. The tree view, a user interface widget that displays hierarchical data as nested lists, solves this problem by making lists collapsible and expandable; a list can be opened by or closed by clicking on its parent list item. CollapsibleLists is a JavaScript object that turns a normal HTML list into a tree view. In the example below, click on the items with plus and minus icons to expand and collapse their lists; in this example the top level deliberately cannot be collapsed.
  • Collapsible lists
    • Actions
    • Uses

Download CollapsibleLists

Download one of the files below and upload it to your web server.
FileSizeDescription
CollapsibleLists.js4,770 bytesFull version, with comments
CollapsibleLists.compressed.js1,667 bytesCompressed version
Link to the file using a script element in the head of your page:
1
<script type="text/javascript" src="CollapsibleLists.js"></script>

Using CollapsibleLists

CollapsibleLists works with normal HTML lists, such as the following:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<ul class="collapsibleList">
  <li>
    Parent item
    <ul>
      <li>Child item</li>
      <li>Child item</li>
    </ul>
  </li>
  <li>
    Parent item
    <ul>
      <li>Child item</li>
      <li>Child item</li>
    </ul>
  </li>
</ul>
The sub-lists need not be contained directly within their parent items. For example, each ul element could be inside a div element that is in turn inside the li element, allowing for more advanced styling.
The apply function turns any list with the class ‘collapsibleList’ into a tree view and collapses its sub-lists:
1
2
// make the appropriate lists collapsible
CollapsibleLists.apply();
This function should generally be called immediately after page load, using code such asOnloadScheduler. By default all sub-lists are also made collapsible; to prevent this, ‘true’ can be passed as a second parameter, causing sub-lists to be left in their expanded state unless they have the class ‘collapsibleList’.
If a list is dynamically added to the page, it can be turned into a tree view using the applyTo function. The function should be passed the DOM node containing the list:
1
2
// make the list with the ID 'newList' collapsible
CollapsibleLists.applyTo(document.getElementById('newList'));
As with the apply function, an additional optional parameter can be set to ‘true’ to prevent sub-lists from being made collapsible.

Styling the lists

CollapsibleLists will apply the class ‘collapsibleListClosed’ to any list item whose sub-lists are closed, and ‘collapsibleListOpen’ to any list item whose sub-lists are open. List items without sub-lists will not have a class applied.
For improved usability, closed lists should indicate that they can be expanded, and open lists should indicate that they can be collapsed. One way of doing this is through the use of different mouse pointers and bullet point images. For example:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
.collapsibleList li{
  list-style-image:url('button.png');
  cursor:auto;
}

li.collapsibleListOpen{
  list-style-image:url('button-open.png');
  cursor:pointer;
}

li.collapsibleListClosed{
  list-style-image:url('button-closed.png');
  cursor:pointer;
}
The image names in lines 2, 7, and 12 should be changed to reflect the name of your images. Lines 3, 8, and 13 ensure the mouse pointer changes to what CSS refers to as a ‘pointer’ (usually rendered as a hand) when the mouse can be clicked to expand or collapse a sub-list.

Comments

Popular posts from this blog

உடல் எடையை குறைக்க வேண்டுமா ?

இன்றைய அவசர உலகின் மிக பெரிய பிரச்சனையாக இருப்பது உடல் எடை அதிகரிப்பது தான்.மனம் போன போக்கில் உணவு கட்டு பாடு இல்லாமல் கண்டதையும் உள்ளே தள்ளுவதும்,உக்காந்த இடத்திலேயே கணணி முன் நேரத்தை விரயமாக்குவதும் தான் இந்த பிரச்சனைக்கு மூல காரணமாகும். அது சரி இந்த பிரச்சனையை எப்படி இல்லாமல் செய்வது அல்லது உடல் எடையை எவ்வாறு குறைப்பது என்பதை பற்றி பாப்போம் , பல வருட ஆரய்சிக்குபின் மருத்துவர்கள்   உடல் எடைய குறைக்க மிகவும் சுலபமான உடற்பயிற்சியை கண்டுபிடித்துள்ளனர்.இது  100% பயனளிக்க கூடியது, எந்த இடத்திலும் எந்தநேரத்திலும் மிக சுலபமா செய்ய கூடிய உடற் பயிற்சியாகும்.இந்த உடற்பயிற்சிகள் படத்துடன் கீழே தரப்பட்டுள்ளது நீங்களும் முயற்சித்து பாருங்கள கண்டிப்பாக பலன் கிடைக்கும்... முதலில் நாற்காலியில் உட்கார்ந்து இட  பக்கம் பார்கவும் .. ..        அடுத்து  நாற்காலியில் உட்கார்ந்து வல  பக்கம் பார்கவும்  ....  நண்பர்கள் யாரவது மச்சி வாடா சின்ன பீஸ் ,இங்க பாரு சூப்பர் அய்டம்னு சொல்லி கால்ல விழுந்து கூப்பிட்டலோ மேற்கூறிய உடற் பயிற்சிகளை முயற்சித்து பார்கவும் கண்டிப்பாக பலன் கிடைக்கும் .

38 (new) web tools to keep you busy

For many of us, the internet represents our daily job, income resource or biggest hobby. Every day we check our emails, read our feeds, visit our websites, find and discuss new things and GOD knows what else. It requires a lot of tools to do all this stuff and sometimes, we forget to search for easier solutions losing valuable time or keeping down the production graph. It's very hard to keep track with everything that's new and popular and this is why we do monthly searches for the best web tools out there. Enjoy!  45+ Web Operating Systems "There are many more web operating systems hoping to bring all your usual desktop applications online in one place - here are more than 45 of our favorites."  15 Ways To Create Website Screenshots "15 Ways To Create Website Screenshots"  Open Source Windows "The promise of open source software is best quality, flexibility and reliability. The only way to have TRUE "Open Source Windows"is

40 Fresh & Beautiful Examples of Websites With Large Backgrounds

Using large sized pictures or illustrations as your website’s background adds a great visual appeal to your website’s design. Many web designers use large images as backgrounds as more and more users are now opting for high resolution monitors and high speed internet connections. Here’s a showcase of 40 Fresh and amazing websites that are using large background images. 1.  The Pixel Blog 2.  Copimaj Interactive 3.  Flourish Web Design 4.  Abduction Lamp 5.  Morphix Design Studio 6.  Final Phase 7.  Make Photoshop Faster 8.  WebSarga 9.  Suie Paparude 10.  Duirwaigh Studios 11.  BlackMoon Design 12.  Sepitra 13.  Le Blog de Gruny 14.  Piipe 15.  Mozi Design Studio 16.  Electric Current 17.  Lora Bay Golf 18.  Life Style Sports 19.  ligne triez 20.  Oliver Kavanagh 21.  World of Merix Studio 22.  Le Web Defi 23.  How host 24.  Productive Dreams 25.  Gary Birnie 26.  Glocal Ventures 27.  GDR UK 28.  Absolute Bica 29.  Le Nordik 30.  Leaf Tea Shop & Bar 31.  Paul Smith 32.  EwingCole