jQuery Plugin To Fix DOM Elements On The Page - Zebra_Pin
| File Size: | 18.9 KB |
|---|---|
| Views Total: | 3584 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
Zebra_Pin is an easy-to-use jQuery plugin which makes any DOM elements 'sticky' within the document or a specified container. Great for sticky header navigation, sidebar, social share buttons and more.
Basic usage:
1. Download the plugin and include the zebra_pin.js script after jQuery library but before you close the body tag.
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/zebra_pin.js"></script>
2. Create a sticky element that should be restrained to its parent element's boundaries.
new $.Zebra_Pin($('#demo-1'), {
contain: true
}),
3. Create a sticky element that always stays at the top of the document when scrolling down.
new $.Zebra_Pin($('#demo-1'), {
// options here
});
4. Options and defaults.
new $.Zebra_Pin($('#demo-1'), {
// class to add to the element when it is "sticky"
class_name: 'Zebra_Pin',
// specifies whether the pinned element should be restrained to its parent element's boundaries or not.
contain: false,
// specifies whether the element should be "hard" pinned (the element is pinned to its position from
// the beginning), or become pinned only when it is about to be hidden.
// default is FALSE
hard: false,
// margin, in pixels, from the container element's (or the browser window's) top
// this only works if the "hard" property is set to FALSE.
top_spacing: 0,
// margin, in pixels, from the container element's bottom
// this only works if the "hard" property is set to FALSE and it is used only if the "contain" property is TRUE
bottom_spacing: 0,
// the value of zIndex CSS property to be set for pinned elements
z_index: 9999,
// callback function to be executed when an element is pinned
// the callback function receives 3 arguments:
// - the vertical position, relative to the document, where the event occurred
// - a reference to the pinned element
// - the index of the element - if the plugin was attached to multiple elements (0 based)
onPin: null,
// callback function to be executed when an element is unpinned
// the callback function receives 3 arguments:
// - the vertical position, relative to the document, where the event occurred
// - a reference to the unpinned element
// - the index of the element - if the plugin was attached to multiple elements (0 based)
onUnpin: null
});
5. API methods.
const instance = new $.Zebra_Pin($('#demo-1'), {
// ...
}),
// re-cal the parent element's height instance.update(); // destroy the instance instance.destroy();
Changelog:
v3.0.1 (2024-05-13)
- update
v3.0.0 (2023-07-10)
- added a destroy method
- the onPin and onUnpin methods now return a single argument: the element for which the event occurred
v2.0.0 (2018-07-23)
- pinned elements are not taken out of DOM when becoming pinned; instead, an invisible clone element is created so that layout doesn't break.
- fixed bug where elements without explicit width would break when becoming pinned
- fixed bug where elements pinned to a container element would incorrectly fire the callback events
- completely rewritten examples
- added version number as a public property - useful to find out the version number even if all you have is the minified source code
v1.1.2 (2017-05-30)
- fixed a bug with contained pins where things were not working as expected if the container element would have a position other than "static"
- new folder structure
- performance improvements and source code tweaks
2017-05-26
- v1.0.9: Source code tweaks, performance improvements and fixed bug with contained pins where the container would have a position other than "static"
This awesome jQuery plugin is developed by stefangabos. For more Advanced Usages, please check the demo page or visit the official website.











