Highly Customizable Sticky jQuery Plugin - jQuery smartSticky
| File Size: | 18.2 KB |
|---|---|
| Views Total: | 1801 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A smart and highly customizable Sticky jQuery plugin that enables you to make any element stay in the same place (top or bottom) as the page is scrolled.
More Features:
- Allows you to set a delay before the element gets stuck.
- Allows you to make an element sticky within a specific container.
- Custom left margin and width.
- Allows you to customize the styles of the sticky element depending on the current state.
- Allows you to set the visibility based on the scroll direction and/or device type.
How to use it:
1. To get started, include jQuery library and the smartSticky plugin's files on the page.
<!-- jQuery --> <script src="/path/to/jquery.slim.min.js"></script> <!-- smartSticky files --> <script src="/path/to/dist/js/jquery.smartSticky.min.js"></script> <link rel="stylesheet" href="/path/to/dist/css/jquery.smartSticky.min.css" />
2. Just attach the function smartSticky function to the element which should be sticky on page scroll and down.
<div class="sticky-smart-demo"> My Sticky Content </div>
$('.sticky-smart-demo').smartSticky({
// options here
});
3. Pin the element at the bottom of the page and only show it when the page scrolls up.
$('.sticky-smart-demo').smartSticky({
show: {
fixed: 'bottom',
scrolling: {
up: true,
down: false
}
}
});
4. Toggle the position of the sticky element depending on the scroll direction.
$('.sticky-smart-demo').smartSticky({
show: {
fixed: 'toggle',
scrolling: {
up: true
}
}
});
5. Override the default delay time in ms.
$('.sticky-smart-demo').smartSticky({
show: {
delay: 400
}
});
6. Stretch the element to the full width when getting stuck.
$('.sticky-smart-demo').smartSticky({
container: function (manager) {
return manager.elem.closest('.row');
}
});
7. Make the element sticky above the original position.
$('.sticky-smart-demo').smartSticky({
show: {
original: {
above: true
}
}
});
8. Customize the CSS styles depending on the current Sticky state.
$('.sticky-smart-demo').smartSticky({
show: {
fixed: 'bottom',
scrolling: function (manager, scrollingBottom) {
if (scrollingBottom) {
manager.elem.css('color', 'red');
}
else {
manager.elem.css('color', 'green');
}
return true;
}
}
}).on('smartSticky.deactivate', function () {
$(this).css('color', 'black');
});
9. All default customization options.
$('.sticky-smart-demo').smartSticky({
show: {
delay: 50,
immediately: false,
original: {
under: true,
above: false
},
fixed: 'top',
scrolling: {
up: false,
down: true
}
},
container: null,
css: {
classes: {
placeholder: 'sticky-smart-placeholder',
root: 'sticky-smart',
invisible: 'sticky-smart-invisible',
active: 'sticky-smart-active',
background: 'sticky-smart-background',
container: 'sticky-smart-container'
},
fixed: {
width: false,
left: false
}
}
});
10. Make the element fixed at the bottom only on mobile devices (screen size < 768px).
$('.sticky-smart-demo').smartSticky({
show: {
fixed: function () {
if ($(window).width() < 768) {
return 'bottom';
}
},
scrolling: function (manager, scrollingBottom) {
if ($(window).width() < 768) {
return !scrollingBottom;
}
return scrollingBottom;
}
}
});
11. Enable & disable the plugin programmatically.
instance.smartSticky('disable');
instance.smartSticky('enable');
12. Update the options.
instance.smartSticky('setOptions', {
// options here
});
13. Hide the sticky element.
instance.smartSticky('hide');
14. Event handlers.
$('.sticky-smart-demo').smartSticky({
// options here
}).on('smartSticky.activate', function () {
// do something
}).on('smartSticky.deactivate', function () {
// do something
}).on('smartSticky.activated', function () {
// do something
}).on('smartSticky.deactivated', function () {
// do something
}).on('smartSticky.init', function () {
// do something
});
Changelog:
v2.7.1 (2021-10-09)
- improve performance
v2.6.2 (2021-10-09)
- removing inner overflowing element feature
v2.6.1 (2020-08-15)
- more events
v2.6.0 (2020-07-23)
- overflowing container customization, bugfixes
v2.4.0 (2020-07-04)
- support of fixed header in tables, better event handling
v2.3.1 (2020-07-02)
- IE bugfixes, again.
v2.3.0 (2020-06-30)
- IE bugfixes, simplification
v2.1.1 (2020-05-16)
- Added managers and callbacks
- Fixed IE
- Refactor yCoord
v2.0.0 (2020-05-14)
- Bugfix default settings, support of inner overflowing container, refactor, defining own placement positions callbacks support
v1.4.0 (2020-05-02)
- Bugs fixed
v1.3.1 (2020-05-01)
- Bugs fixed
- Added more methods.
v1.0.2 (2020-05-01)
- optimalization, refactoring, renaming
This awesome jQuery plugin is developed by oplaner4. For more Advanced Usages, please check the demo page or visit the official website.











