Grow your CSS skills. Land your dream job.

CSS Menu Slider for Mobile Devices – Collaboration

  • # July 20, 2012 at 9:51 pm

    Have you ever used Facebook’s mobile site or app? The app sports a cool scrollable menu that slides out from the left. For mobile versions of sites, this is a fantastic way to deal with your navigation menu so you don’t take up valuable space with nav links! I’ve created a working version of that type of layout, and I decided to see if anyone wants to help collaborate on it. More information is provided in my repo – https://github.com/NicholasRBowers/CSS-Menu-Slider.

    Live Demo: EDIT – next comment.

    Highlights:
    -Based off of Checkbox Hack
    -Meant for mobile
    -Works in major browsers (except IE, but I’m designing for mobile, so this doesn’t concern me TOO much)
    -Tested on Android browser and Chrome on Android, and works moderately well in both (if you zoom, Chrome freaks out a little bit)
    -Collaboration welcome!

    # July 20, 2012 at 11:28 pm

    Embedded JSFiddle Result – http://jsfiddle.net/NicholasRBowers/PPZ8b/embedded/result/
    JSFiddle Code – http://jsfiddle.net/NicholasRBowers/PPZ8b/

    # July 21, 2012 at 8:29 am

    That looks very nifty! Nicely done, gonna fork that one :)!

    # July 21, 2012 at 11:38 am

    Fantastic! Definitely feel free to brainstorm with me as to how to make it better. I added a request/suggestion tag in issues, so we can talk about improvements in functionality and cross-compatibility.

    # July 23, 2012 at 6:42 pm

    Current version.

    Special thanks to @Vermaas for forking the repository and helping out! Still a few bugs, but we’re working on making this stable across all mobile browsers (harder than it sounds). If you’d like to help out, repository is here.

    # December 27, 2012 at 1:09 pm

    I’m going to try this out!

    I’ll let you know what I come up with and show you the website once it’s live.

    # December 28, 2012 at 1:26 pm

    @paintba11er89, (http://jsfiddle.net/thatschris/PPZ8b/83/ “”) to remove the horizontal scrollbar when the menu is expanded..added `40%` width to #page when the box is checked.

    I also changed the positioning from percentages to em’s on the Navigation and Header so they won’t move when the width is reduced.

    # December 28, 2012 at 1:31 pm

    I looked at your demo (not your code yet) but it reminded me of something I was tinkering with a while ago on codepen.

    [http://codepen.io/bkbillma/pen/LKrjo](http://codepen.io/bkbillma/pen/LKrjo “Mobile Menu”)

    Not sure if it is helpful or not but I hope so. We might even have a similar approach

    # December 28, 2012 at 1:36 pm

    I actually just went and looked back at how you used the label checking the checkbox for the action and that is pretty slick. In mine i used :hover/:target/:active to try to get cross browser stuff in play.

    # December 28, 2012 at 1:59 pm

    I forgot you can also see it in action in its first form [here](http://i-cart.org “I-cart”)

    On desktop browsers it is certainly not ideal currently. It works better on mobile at the moment

    # December 28, 2012 at 2:08 pm

    @ChrisP, that’s slick! I’ll implement that into my version on Github. I’m still trying to find a way to be able to make the `#page` panel unscrollable when the navigation menu is out. Thoughts?

    # December 28, 2012 at 2:24 pm

    @bkbillma I thought about using :hover/:target/:active to make this work, but I forget why I ultimately decided to go a different direction. Obviously, I don’t like the idea of building a complete navigational structure off of a hack, but CSS offers very little opportunities to store state information.

    Which part of the website demonstrates your version? I couldn’t find it.

    Obviously, this entire thing would work much simpler with Javascript, but CSS-only is fun and challenging – plus it hasn’t been done yet. This is more of an exercise to see how we can leverage CSS to do many of the things people just appropriate to JS, which (in certain instances) negatively affects page loading times. I usually only use JS to make things pretty, but rely on HTML and CSS for functionality (although, again, this is a hack and not really best practice).

    # December 28, 2012 at 2:25 pm

    @paintba11er89, yes, as a matter of fact, I do have a thought on that..instead of adjusting the width to 40% (which will wrap any extended text when resized), I changed the position to fixed, which stops scrolling on the `#page` when the menu is extended, which means you could also preserve those percentage sizes and positions like you had before, and also pushes the entire content over instead of wrapping the text..UNFORTUNATELY, I’d like to add a .7s delay, but only when the nav is being retracted, to avoid a horizontal scroll on the way back to the sidebar, but don’t have time to tinker right now. [Check it out](http://jsfiddle.net/PPZ8b/84/ “”)

    # December 28, 2012 at 2:34 pm

    That may not work, it seems to reset page to the top when the menu is extended..hmmmm..

    # December 28, 2012 at 3:03 pm

    @paintballer89 if you size your browser down to <400px or if you are on a small screen you will see the menu link in the top right. I even did this with :before in the 400px media querie and hook everything off of that.

Viewing 15 posts - 1 through 15 (of 22 total)

You must be logged in to reply to this topic.

*May or may not contain any actual "CSS" or "Tricks".