Okay so the title is a little click-baity, but the ease of this blew my mind and I wanted to ring the bells for my fellow devs.
So you're not stuck downloading a full library just to implement it, when all you need is a dozen lines of css for blazing fast perf and compatibility.
There's 3 overall steps which are required , all very simple, to do this. You can use any JavaScript framework or vanilla JS if you would like. Its all in pure CSS.
Create a div for your overall page content. In this example lets give it an id of #page, and make sure to assign it a width of 100vw in your .css style. So it will update its width to match the device.
Create a button with an onclick handler which sets a variable called "IsMenuVisible" to true , upon click. This is the button which will trigger the side menu to open.
Create a div with id #flyoutMenu, inside the #page div (from step1) anywhere. Add a class of "show" to this div , when "IsMenuVisible" is true , and add a class of "hide" when "IsMenuVisible" is false.
Let the CSS below do the rest of the magic :)
#flyoutMenu {
width: 100vw;
height: 100vh;
background-color: #FFE600;
position: fixed;
top: 0;
left: 0;
transition: transform .3s
cubic-bezier(0, .52, 0, 1);
overflow: scroll;
z-index: 1000;
}
#flyoutMenu.hide {
transform: translate3d(-100vw, 0, 0);
}
#flyoutMenu.show {
transform: translate3d(0vw, 0, 0);
overflow: hidden;
}
If you enjoyed my post I'd really appreciate it if you could check out my new webapp WannaGo. Its meant for developers and designers to come together on a cross-skill platform with built in scheduling and instant WebRTC based peer-to-peer text, audio and video chat in the browser.
WannaGo
Collaboration app for devs, designers and people who just wanna study or watch movies together :p
https://www.iwannagoapp.com/
https://twitter.com/iWannaGoApp
Original reference CSS from:
https://www.kirupa.com/react/smooth_sliding_menu_react_motion.htm
Top comments (0)