jquery - Javascript One Page Fixed Header Responsive Slideup and Down -
i figured out how make header disappears upon click when viewing within mobile version disappears when you're not in mobile version. how make if it's not in mobile version, not disappear upon click?
html
<header> <div class="head_container"> <a href="#" class="logo"><h1>hello</h1></a> <nav> <a href="#" id="top_menu">hello</a> <ul> <li><a href="#homepage">homepage</a></li> <li><a href="#contact">contact</a></li> <li><a href="#about">about</a></li> </ul> </nav> </div> <div class="clear"></div> </header>
css desktop
nav { margin: 0 auto; float: right; font: 14px arial, sans-serif; position: relative; } nav ul { padding: 0; margin: 0 auto; } nav li { display: inline-block; float: left; padding: 20px 0px; } nav li { padding: 8px 15px; margin: 0 .15em; border-bottom: 1px solid transparent; } nav { color: #000000; display: inline-block; text-decoration: none; } nav a#top_menu { display: none; } nav a:hover, nav a:active { color: #8148c1; }
css mobile
nav { float: none; line-height: 60px; } nav ul { display: none; height: auto; } nav li { display: block; width: 100%; float: none; padding: 0; } nav li { border-bottom: 1px solid #ebebeb; padding: 0; } nav { text-align: left; width: 100%; text-indent: 20px; white-space: nowrap; } nav a#top_menu { display: block; background-position: 20px 17px; text-indent: -9999em; position: relative; width: 100%; border-bottom: 1px solid transparent; } nav a#top_menu:after { content:""; background: url('../images/mini.png') no-repeat; width: 30px; height: 30px; display: inline-block; position: absolute; right: 15px; top: 15px; }
javascript
$(function () { menu = $("nav ul"); $(top_menu).click(function () { if ($('nav ul').is(':visible')) { menu.slideup() } else { menu.slidedown() } }); $('nav li a').click(function () { menu.slideup() }); });
you can check viewport width in javascript & make menu slide & down if mobile viewport.
this should work -
$(function () { menu = $("nav ul"); var preferredmobileviewportwidth = "480"; /* can keep mobile media query width */ var viewportwidth = $(window).width(); var ismobile = false; if(viewportwidth <= preferredmobileviewportwidth) { ismobile = true; } $(top_menu).click(function () { if(ismobile) { if ($('nav ul').is(':visible')) { menu.slideup() } else { menu.slidedown() } } }); $('nav li a').click(function () { if(ismobile) { menu.slideup(); } }); });
Comments
Post a Comment