Simple jQuery Plugin to add a sliding out panel.
I have decided to archive this project as I am no longer maintaining it.
npm install --save-dev jquery-slideoutpanel
https://webdevnerdstuff.github.io/jquery-SlideOutPanel/demo.html
The html must be set up with the proper id and internal elements.
Allowed tags: <header>
<section>
<footer>
Optional tags: <header>
<footer>
Required tag: <section>
<div id="slide-out-panel" class="slide-out-panel">
<header>Panel Title</header>
<section>Panel content section</section>
<footer>Panel footer</footer>
</div>
Name | Type | Default | Options | Description |
---|---|---|---|---|
bodyPush | boolean | false | true false |
Enables pushing the body when the tab opens (works with slideFrom right and left |
breakpoint | String | 768px | Sets the breakpoint (matches the breakpoint in SCSS/CSS). This is used when bodyPush is true | |
closeBtn | html | ✕ ✕ |
Add a custom close button instead of the default | |
closeBtnSize | String | 12px | Adjust the close button size | |
enableEscapeKey | Boolean | false | true false |
Enables the esc key to close all panels |
offsetTop | String | 0 | Offset the top of the panel | |
screenClose | Boolean | true | true false |
Enables closing of panels by clicking on the background screen. |
screenOpacity | String | 0.5 | Set the background screen's opacity | |
screenZindex | String | 9998 | Set the background screen's z-index | |
showScreen | Boolean | true | true false |
Enable/Disable showing the background screen |
slideFrom | String | right | top right bottom left |
Set to choose where the panel should slide out from |
transition | String | ease | Set the transition-timing-function. Accepts the standard values used with CSS. | |
transitionDuration | String | 0.35s | Set the duration of the transitions. Adding "s" is optional. | |
width | String | 350px | Set the panels width |
$('#slide-out-panel').SlideOutPanel({
bodyPush: false,
closeBtn: '<i class="fas fa-times"></i>',
closeBtnSize: '',
enableEscapeKey: true,
offsetTop: '50px',
screenClose: false,
screenOpacity: '1',
screenZindex: '9998',
showScreen: false,
slideFrom: 'right',
transition: 'ease',
transitionDuration: '0.35s',
width: '350px',
});
Name | Description |
---|---|
rendered | Fired after the panel is finished building |
beforeOpen | Fired before panel opens |
afterOpen | Fired after panel has opened |
beforeClosed | Fired before panel is closed |
afterClosed | Fired after the panel is closed |
$('#slide-out-panel').SlideOutPanel({
rendered() {
// Some code...
},
beforeOpen() {
// Some code...
},
afterOpen() {
// Some code...
},
beforeClosed() {
// Some code...
},
afterClosed() {
// Some code...
},
});
Name | Description |
---|---|
open | Opens the panel |
close | Closes the panel |
toggle | Toggles the panel open/close |
destroy | Removes the panel from the DOM |
const slideOutPanel = $('#slide-out-panel').SlideOutPanel();
slideOutPanel.open();
slideOutPanel.close();
slideOutPanel.toggle();
slideOutPanel.destroy();
Variable | Default | Description |
---|---|---|
$pieces-padding | 15px | Padding for the panel pieces (header, section, footer) |
$so-screen-sm | 768px | Responsive breakpoint |
$so-close-btn-color | #000 | Color of the close button |
$so-close-font-size | 12px | Font size of the close button |
$so-container-background | #fff | The panel background color |
$so-container-box-shadow | -3px 3px 9px rgba(0, 0, 0, .3) | The panel box shadow |
$so-container-transition | top ease, right ease, bottom ease, left ease | Transition effect |
$so-container-z-index | 9999 | The panel z-index |
$so-content-no-header-padding-top | $pieces-padding * 2 | The top padding of the <section> when there is no header |
$so-header-background-color | #fff | The header background color |
$so-header-border-color | #e5e5e5 | The header bottom border color |
$so-header-border-width | 1px | The header border width |
$so-content-background-color | #fff | The <section> background color |
$so-footer-background-color | #fff | The <footer> background color |
Initialize plugin:
$('#slide-out-panel').SlideOutPanel();
Changing the direction the panel slides out from:
$('#slide-out-panel').SlideOutPanel({
slideFrom: 'top',
});
$('#slide-out-panel').SlideOutPanel({
slideFrom: 'right',
});
$('#slide-out-panel').SlideOutPanel({
slideFrom: 'bottom',
});
$('#slide-out-panel').SlideOutPanel({
slideFrom: 'left',
});
Close button customization:
$('#slide-out-panel').SlideOutPanel({
closeBtn: '<i class="fas fa-times"></i>',
closeBtnSize: '18px',
});
Background screen customization:
$('#slide-out-panel').SlideOutPanel({
screenClose: true,
screenOpacity: '0.5',
screenZindex: '9998',
showScreen: true,
});
jQuery
Copyright (c) 2020 WebDevNerdStuff Licensed under the MIT license.