Lightweight jQuery In-page Filtering Plugin - instaFilta
| File Size: | 19 KB |
|---|---|
| Views Total: | 2138 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
instaFilta is an ultra-light (~2kb minified) jQuery plugin that enables you to filter & narrow a list of DOM elements through live text search.
Check out the instaFilta V2.
How to use it:
1. Load the jQuery library and the jQuery InstaFilta plugin in the document.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="instafilta.min.js"></script>
2. Create an input filed to act as a filter on the list of DOM elements.
<input type="text" id="demo" placeholder="Type to filter">
3. Create a list of DOM elements as follows.
<div class="section">
<h2 class="section-title">A</h2>
<ul class="section-list">
<li class="section-item">Amy</li>
<li class="section-item">Anakin Skywalker</li>
<li class="section-item">Albert</li>
<li class="section-item">Andy Panda</li>
</ul>
</div>
<div class="section">
<h2 class="section-title">B</h2>
<ul class="section-list">
<li class="section-item">Bob</li>
<li class="section-item">Bonnie</li>
<li class="section-item">Boogie Woogie</li>
<li class="section-item">Barry</li>
</ul>
</div>
<div class="section">
<h2 class="section-title">C</h2>
<ul class="section-list">
<li class="section-item">Carrie Bradshaw</li>
<li class="section-item">Carl</li>
<li class="section-item">Cindy</li>
<li class="section-item">Cameron</li>
<li class="section-item">C-3PO</li>
</ul>
</div>
...
4. Call the plugin on the input field and setup the options.
$(function() {
$('#demo').instaFilta({
targets: '.section-item',
sections: '.section',
hideEmptySections: true,
beginsWith: false,
caseSensitive: false,
typeDelay: 0
});
});
5. Available options.
targets: '.instafilta-target': Classname of an individual item.scope: null: Classname of an element in which the input field and the targets are enclosed. Use this if you want to use multiple filter sections on your page.categoryDataAttr: 'instafilta-category': Name of data attributes in which to look for categories.sections: '.instafilta-section': Classname of the sections holding the items.matchCssClass: 'instafilta-match': Classname of the spans indicating matching text.itemsHideEffect: 'hide': What jQuery effect to use for hiding items (slideUp etc.).itemsHideDuration: 0: Duration (in ms) of item hide effect.itemsShowEffect: 'show': What jQuery effect to use for showing items (slideDown etc.).itemsShowDuration: 0: Duration (in ms) of item show effect.sectionsHideEffect: 'hide': What jQuery effect to use for hiding sections (slideUp etc.).sectionsHideDuration: 0: Duration (in ms) of section hide effect.sectionsShowEffect: 'show': What jQuery effect to use for showing sections (slideDown etc.).sectionsShowDuration: 0: Duration (in ms) of section show effect.onFilterComplete: null: Callback which is fired when the filtering process is complete. RecievesmatchedItems, which is jQuery containing all matched items.markMatches: false: If true, natching text will get wrapped by a span having the class name of matchCssClass.hideEmptySections: true: If using sections, this option decides whether to hide sections which did not have any matching items in them.beginsWith: false: We can choose to match the beginning of an item's text, or anywhere within.caseSensitive: false: Whether to ignore character casing.typeDelay: 0: The filtering process takes place on the keyUp event. If you have a large list of items to process, you might want to set a higher value (in milliseconds) to prevent the filtering to be able to occur so frequently. So in other words, it would kind of "wait" a bit while the user types.useSynonyms: true: When set to true, this option will also match user input against a synonym list.synonyms: []: List of objects that contain synonyms.
6. Public methods.
filterTerm: Can be used to programmatically apply a filter. For normal simple usage, you will probably not be needing this.filterCategory: Applies a category filter that matches data attributes
Change logs:
2015-04-02
- filterCategories now accepts requireAll param.
- Demo update.
2015-03-25
- filterCategories now supports string and array.
2015-03-23
- cleanup and update demo.
2015-03-21
- Improve demo.
2015-02-06
- Show/hide options and onFilterComplete callback.
2015-01-19
- Added new method: filterCategory.
2015-01-18
- Added default synonyms for lowercase 'i'.
2015-01-16
- Added æ as a default synonym.
2014-12-16
- Moved var into function scop
2014-12-15
- multi-filter support
2014-09-02
- New options markMatches and matchCssClass
This awesome jQuery plugin is developed by chromawoods. For more Advanced Usages, please check the demo page or visit the official website.











