I recently bought Moltran which is fine but has a big disadvantage: The notification menu disappears on mobile devices, which is not suiteable for me. So I learned that that this can be done removing the hidden-xs class of the li notification element. This will turn <li class="dropdown hidden-xs open"> to <li class="dropdown open">, which works fine. 
Now I stretched the small menu on the full width of the screen If the user has a smaller device for better usability:
@media (max-width: 767px) {
    .nav > li.dropdown:not(.hidden-xs).open .dropdown-menu {
        width: 100vw;
    }
}
Everything works fine, until one thing: I'm not able to scroll in the menu. Using a modern 5" smartphone horizontal, 3 elements at the end are hidden. Instead the scrolling will affect the background caused by the absolute position.
A simple demonstration on the online demo to make it more clear: I only removed the class hidden-xs because otherwise the menu would not appear on small windows in the line <li class="dropdown hidden-xs open"> as I said before. 
When the window is very small, its not able to see the full notification menu and the user isn't able to scroll there:

As you can see, the scroll bar on the right is at the bottom, but you can't full see the notifications because the scroll bar doesn't affect this menu. I tried a few things, mainly switching to other position types because the absolute position seems to cause the issue. But nothing worked, seems like I'm in a blind end.
So my question is: What changes are necessary to keep the functionality as it is, but provide a way to scroll in the notifications on smaller devices?
Well. If I understand correctly you should set overflow to your navigation bar. And it should do the trick.
.topbar{
    height: 100%;
    background: transparent;
    overflow-y: auto;
}
EDIT: This will set height of your topbar to 100%. Because of this it will overlap all elements on the screen.
As an alternative you can add a separate class when notification button is clicked and style this element only in such case. For example:
.topbar.notification-open{
    height: 100%;
    background: transparent;
    overflow-y: auto;
}
And toggle class with jQuery:
$('.dropdown-toggle').click(function(){
    $(this).closest('.topbar').toggleClass('notification-open');
});
                        You can make the notification panel scrollable:
.navbar-nav .open .dropdown-menu {
  background-color: #ffffff;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
  left: auto;
  position: absolute;
  right: 0;
  z-index: 100;
  // Extra code required
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* lets it scroll lazy */
  max-height: 500px; //or whatever. Could be 90vh
}
This should work just fine. Hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With