Accordion Menu with Dropdown Using HTML, CSS and JS
  • index.html
    <!DOCTYPE html>
    
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
    
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" />
    
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat" />
    
        <link rel="stylesheet" href="css/style.css" />
    
        <title>Accordion Menu</title>
      </head>
    
      <body>
        <div class="container">
          <ul class="accordion-menu">
            <li>
              <div class="dropdownlink">
                <i class="fa fa-heart" aria-hidden="true"></i> Accordion
    
                <i class="fa fa-chevron-down" aria-hidden="true"></i>
              </div>
    
              <ul class="submenuItems">
                <li><a href="#">Accordion 1</a></li>
    
                <li><a href="#">Accordion 2</a></li>
    
                <li><a href="#">Accordion 3</a></li>
              </ul>
            </li>
    
            <li>
              <div class="dropdownlink">
                <i class="fa fa-heart" aria-hidden="true"></i> Accordion
    
                <i class="fa fa-chevron-down" aria-hidden="true"></i>
              </div>
    
              <ul class="submenuItems">
                <li><a href="#">Accordion 1</a></li>
    
                <li><a href="#">Accordion 2</a></li>
    
                <li><a href="#">Accordion 3</a></li>
              </ul>
            </li>
    
            <li>
              <div class="dropdownlink">
                <i class="fa fa-heart" aria-hidden="true"></i> Accordion
    
                <i class="fa fa-chevron-down" aria-hidden="true"></i>
              </div>
    
              <ul class="submenuItems">
                <li><a href="#">Accordion 1</a></li>
    
                <li><a href="#">Accordion 2</a></li>
    
                <li><a href="#">Accordion 3</a></li>
              </ul>
            </li>
    
            <li>
              <div class="dropdownlink">
                <i class="fa fa-heart" aria-hidden="true"></i> Action
    
                <i class="fa fa-chevron-down" aria-hidden="true"></i>
              </div>
    
              <ul class="submenuItems">
                <li><a href="#">Action 1</a></li>
    
                <li><a href="#">Action 2</a></li>
    
                <li><a href="#">Action 3</a></li>
              </ul>
            </li>
          </ul>
        </div>
    
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    
        <script src="js/main.js"></script>
      </body>
    </html>
    

     

    style.css
    * {
         margin: 0;
         padding: 0;
    }
     body {
         font-family: "Montserrat", sans-serif;
         background-color: #f7b42c;
         background-image: linear-gradient(315deg, #f7b42c 0%, #fc575e 74%);
    }
     .lead {
         font-size: 1.5rem;
         font-weight: 300;
    }
     .container {
         margin: 150px auto;
         max-width: 960px;
    }
     ul {
         list-style: none;
    }
     a {
         text-decoration: none;
    }
     h2 {
         text-align: center;
         margin: 20px auto;
         color: #fff;
    }
     .accordion-menu {
         width: 100%;
         max-width: 450px;
         margin: 60px auto 20px;
         background: #fff;
         border-radius: 4px;
    }
     .accordion-menu li.open .dropdownlink {
         color: #f7b42c;
    }
     .accordion-menu li.open .dropdownlink .fa-chevron-down {
         transform: rotate(180deg);
    }
     .accordion-menu li:last-child .dropdownlink {
         border-bottom: 0;
    }
     .dropdownlink {
         cursor: pointer;
         display: block;
         padding: 15px 15px 15px 45px;
         font-size: 18px;
         border-bottom: 1px solid #ccc;
         color: #212121;
         position: relative;
         transition: all 0.4s ease-out;
    }
     .dropdownlink i {
         position: absolute;
         top: 17px;
         left: 16px;
    }
     .dropdownlink .fa-chevron-down {
         right: 12px;
         left: auto;
    }
     .submenuItems {
         display: none;
         background: #ffe5d9;
    }
     .submenuItems li {
         border-bottom: 1px solid #f5c4c6;
    }
     .submenuItems a {
         display: block;
         color: #727272;
         padding: 12px 12px 12px 45px;
         transition: all 0.4s ease-out;
    }
     .submenuItems a:hover {
         background: #ffa47a;
         color: #fff;
    }
    

     

    main.js
    $(function ()
    {
        var Accordion = function (el, multiple)
        {
            this.el = el ||
            {};
            //More Than One Menu Open
            this.multiple = multiple || false;
            var dropdownlink = this.el.find('.dropdownlink');
            dropdownlink.on('click',
            {
                el: this.el,
                multiple: this.multiple
            }, this.dropdown);
        };
        Accordion.prototype.dropdown = function (e)
        {
            var $el = e.data.el,
                $this = $(this),
                $next = $this.next();
            $next.slideToggle();
            $this.parent().toggleClass('open');
            if (!e.data.multiple)
            {
                //Show Only one Menu at the same time
                $el.find('.submenuItems').not($next).slideUp().parent().removeClass('open');
            }
        };
        var accordion = new Accordion($('.accordion-menu'), false);
    });
    Download
    2.19 KB