Topic: Sticky sidebar menu with scrollspy?
                  
                  linx
                  priority
                  asked 3 years ago
                
I'm having trouble figuring out how to use the sticky and scrollspy components together.
I have a sidebar menu with anchor links to page headings. I need it to do the following:
- Stick below the navbar as the user scrolls down, and above the footer as the user scrolls up. This is working.
 - Highlight each anchor link as the user scrolls through the page and the corresponding heading nears the top of the viewport. This is not working.
 
Here's my code on the body element:
<body class="{{ body_class }}"
        data-mdb-spy="scroll"
        data-mdb-target="#sidenav"
        data-mdb-offset="130">
And on the parent element of #sidenav:
<div class="block-sidenav py-4 sticky"
        data-mdb-sticky-boundary="true"
        data-mdb-sticky-direction="both"
        data-mdb-sticky-offset="61"
        data-mdb-sticky-delay="61">
Finally, #sidenav itself:
<nav id="sidenav">
    <ul class="nav-sidenav list-group">
        ...
    </ul>
</nav>
There was a way to do this in MDB4, but I can't find anything in the documentation about doing it with the new data attribute syntax in MDB5. Can you help?
                      
                      Grzegorz Bujański
                      free
                        answered 3 years ago
                    
Elements do not mark as active because nav-pills menu-sidebar classes are missing for ul element and nav-link for li element. This code should work fine for you:
<nav id="sidenav">
  <ul class="nav-sidenav list-group nav-pills menu-sidebar">
    <li class="list-group-item font-weight-bold">
      Topics
    </li>
    <li class="nav-link">
      <a class="nav-link" href="#alfa">Alfa</a>
    </li>
    <li class="nav-link">
      <a class="nav-link"  href="#bravo">Bravo</a>
    </li>
    <li class="nav-link">
      <a class="nav-link" href="#charlie">Charlie</a>
    </li>
    <li class="nav-link">
      <a class="nav-link"  href="#delta">Delta</a>
    </li>
    <li class="nav-link">
      <a class="nav-link" href="#echo">Echo</a>
    </li>
    <li class="nav-link">
      <a class="nav-link" href="#foxtrot">Foxtrot</a>
    </li>
  </ul>
</nav>
                    
                      FREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Answered
- ForumUser: Priority
 - Premium support: Yes
 - Technology: MDB Standard
 - MDB Version: MDB5 3.10.1
 - Device: Desktop
 - Browser: Chrome
 - OS: Windows 10
 - Provided sample code: No
 - Provided link: No
 
Grzegorz Bujański free commented 3 years ago
unfortunately, I am unable to reproduce this issue. Please create a snippet in which this error occurs. I'll check why it doesn't work for you.
linx priority commented 3 years ago
Here it is: https://mdbootstrap.com/snippets/standard/linx/3520308