This JavaScript code snippet helps you to create slide up & slide down div from bottom functionality. It comes with three methods to slide up/down and toggle the div element. You can integrate this code snippet in an accordion or navigation to smoothly slide up & down the content area.
How to Create Slide Up & Down div From Bottom in JavaScript
1. First of all, create the HTML structure as follows:
- <div id="target"><h1>SlideToggle / SlideUp / SlideDown</h1>
- <p>Pure JavaScript</p>
- </div>
- <div class="triggers">
- <button id="triggerUp" title="Only slides up the target element">slideUp</button>
- <button id="triggerDown" title="Only slides down the target element">slideDown</button>
- <button id="triggerToggle" title="Toggle slide-up and slide-down states for the target">slideToggle</button>
- </div>
2. After that, add the following CSS styles to your project:
- @import url('https://fonts.googleapis.com/css?family=Roboto&display=swap');
- *{margin:0; padding:0;}
- body {
- font-family: 'Roboto', sans-serif;
- min-width:350px
- }
- button{
- border:none;
- padding:15px 22px;
- margin: 20px 10px 0 10px;
- cursor:pointer;
- background:#ffd000;
- color:#333;
- outline: none;
- transform: scale(1);
- transition: .4s ease;
- border-radius: 25px;
- }
- button:hover{
- transform: scale(1.1);
- }
- button#triggerToggle{
- background:#faf7e9;
- color:#333;
- }
- #target {
- padding: 8em 1.5em;
- background-color: #ffd000;
- text-align: center;
- color:#333;
- font-weight: 700;
- border-radius: 0 0 20px 20px;
- box-sizing: border-box;
- display: block;
- max-width:1200px;
- margin: 0 auto;
- color:#333
- }
- #target h1 {
- max-width: 500px;
- font-size: 1.5;
- margin: 0 auto;
- line-height: 1.618;
- font-weight: regular;
- }
- .triggers {
- text-align: center;
- }
3. Finally, add the following JavaScript code and done.
- let slideUp = (target, duration=500) => {
- target.style.transitionProperty = 'height, margin, padding';
- target.style.transitionDuration = duration + 'ms';
- target.style.boxSizing = 'border-box';
- target.style.height = target.offsetHeight + 'px';
- target.offsetHeight;
- target.style.overflow = 'hidden';
- target.style.height = 0;
- target.style.paddingTop = 0;
- target.style.paddingBottom = 0;
- target.style.marginTop = 0;
- target.style.marginBottom = 0;
- window.setTimeout( () => {
- target.style.display = 'none';
- target.style.removeProperty('height');
- target.style.removeProperty('padding-top');
- target.style.removeProperty('padding-bottom');
- target.style.removeProperty('margin-top');
- target.style.removeProperty('margin-bottom');
- target.style.removeProperty('overflow');
- target.style.removeProperty('transition-duration');
- target.style.removeProperty('transition-property');
- //alert("!");
- }, duration);
- }
- let slideDown = (target, duration=500) => {
- target.style.removeProperty('display');
- let display = window.getComputedStyle(target).display;
- if (display === 'none')
- display = 'block';
- target.style.display = display;
- let height = target.offsetHeight;
- target.style.overflow = 'hidden';
- target.style.height = 0;
- target.style.paddingTop = 0;
- target.style.paddingBottom = 0;
- target.style.marginTop = 0;
- target.style.marginBottom = 0;
- target.offsetHeight;
- target.style.boxSizing = 'border-box';
- target.style.transitionProperty = "height, margin, padding";
- target.style.transitionDuration = duration + 'ms';
- target.style.height = height + 'px';
- target.style.removeProperty('padding-top');
- target.style.removeProperty('padding-bottom');
- target.style.removeProperty('margin-top');
- target.style.removeProperty('margin-bottom');
- window.setTimeout( () => {
- target.style.removeProperty('height');
- target.style.removeProperty('overflow');
- target.style.removeProperty('transition-duration');
- target.style.removeProperty('transition-property');
- }, duration);
- }
- let slideToggle = (target, duration = 500) => {
- if (window.getComputedStyle(target).display === 'none') {
- return slideDown(target, duration);
- } else {
- return slideUp(target, duration);
- }
- }
- // ====
- let speedAnimation = 400;
- let targetId = document.getElementById("target");
- let slideBtnClick = (id, sl) => document.getElementById(id).addEventListener('click', () => sl(targetId, speedAnimation));
- slideBtnClick('triggerUp', slideUp);
- slideBtnClick('triggerDown', slideDown);
- slideBtnClick('triggerToggle', slideToggle);
- // =========== old
- // document.getElementById("triggerUp").addEventListener('click', function() {
- // slideUp(document.getElementById("target"), 400);
- // });
- // document.getElementById("triggerDown").addEventListener('click', function() {
- // slideDown(document.getElementById("target"), 400);
- // });
- // document.getElementById("triggerToggle").addEventListener('click', function() {
- // slideToggle(document.getElementById("target"), 400);
- // });
That’s all! hopefully, you have successfully integrated this slide up & down div from bottom code snippet into your project. If you have any questions or facing any issues, feel free to comment below.
Similar Code Snippets:

I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences.
I truly enjoy what I’m doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.