Mobile-friendly Collapsible List With jQuery - responsiveLists
File Size: | 7.63 KB |
---|---|
Views Total: | 625 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A mobile-friendly, fully responsive list solution that automatically transforms the long list into an accordion-style sliding dropdown on small screens.
How to use it:
1. Add a header toggle to your long list.
<header id="toggle"> <h3>Header Text</h3> <span class="arrow"> <img src="chev.jpg"> </span> </header> <div id="content"> <ul> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> <li>Item Name</li> </ul> </div>
2. The necessary CSS styles.
#content.mobile { display: none; } header { padding: 10px 0; } header.header-mobile { border-bottom: none; cursor: pointer; } .arrow { display: none; } header.header-mobile .arrow { display: inline-grid; text-align: right; float: right; margin: 0px 5px; transform: rotate(180deg); transform-origin: 50% 60%; } header.header-mobile .arrow.flipped { transform: rotate(0deg); transform-origin: 50% 60%; }
3. Load the latest version of jQuery library at the end of the document.
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"> </script>
4. Detect the viewport size on window resize and add corresponding CSS classes:
(function($) { var $window = $(window), $content = $("#content"), $header = $("#toggle"), $window.resize(function resize() { if ($window.width() < 568) { return $content.addClass('mobile'), $header.addClass('header-mobile'); } $content.removeClass('mobile'); $header.removeClass('header-mobile'); $('#content').removeAttr("style"); }).trigger('resize'); })(jQuery);
5. Enable the header toggle to open/close the collapsed list on mobile view.
$("#toggle").click(function() { $("#content.mobile").slideToggle('fast'); $('#toggle .arrow').toggleClass("flipped"); return false; });
This awesome jQuery plugin is developed by timperk. For more Advanced Usages, please check the demo page or visit the official website.