Responsive nav
How do I make an responsive nav?
What is a responsive nav? How do you make a responsive nav? This script and codes were developed by Tom Markart on 06 November 2022, Sunday.
Responsive nav - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Responsive nav</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel="stylesheet" href="css/style.css">
</head>
<body> <!------- Modified from https://codepen.io/lukejacksonn/pen/BowbWE ------->
<nav class="flex"> <!------- Logo -------> <h1 class="logo"> <a href="http://www.newsobserver.com" target="_blank"><img src="http://www.tmarkart.com/codepen/images/no-logo.png" /></a> </h1> <ul class="links"> <li> <a href="#">Home</a> </li> <li> <a href="#">Local News</a> </li> <li> <a href="#">Sports</a> </li> <li> <a href="#">Living</a> </li> <li> <a href="#">Classifieds</a> </li> <li> <a href="#">Obituaries</a> </li> <li> <a href="#">Entertainment</a> </li> </ul> <button>Full Menu</button> <ul class="hidden-links hidden"></ul>
</nav>
<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc mollis justo vel justo consectetur, at dignissim libero aliquet. Vivamus metus lacus, blandit et lectus sit amet, porttitor commodo justo. Praesent sodales metus id accumsan imperdiet. Sed eget erat lobortis, mollis est sagittis, dictum est. Vestibulum vestibulum sed arcu nec posuere. Etiam sem urna, ullamcorper vel iaculis ac, porttitor vitae lacus. Cras finibus dignissim libero, vitae mollis lacus venenatis et. In quis dignissim mauris, ac aliquet quam. Proin consectetur eget tellus in accumsan. Morbi consectetur eu dui eget maximus. Curabitur facilisis, eros eget volutpat congue, ex nibh molestie lacus, in porttitor nulla magna eget augue. Morbi suscipit vel ipsum ac posuere. Mauris feugiat orci at vestibulum varius. Donec lacinia lectus ac pulvinar vehicula. Cras ac nisl massa. Sed sit amet vehicula urna.
</p>
<p> Praesent nec turpis eu dolor bibendum auctor non vitae magna. Quisque diam orci, condimentum ut lorem id, aliquet iaculis tortor. Duis sed lobortis justo, eu consectetur ligula. Aenean sodales, ligula at rhoncus sodales, lectus metus feugiat tellus, ac ullamcorper nisi massa eu eros. Nulla dapibus molestie erat, vitae semper diam sagittis ut. Proin in varius felis. Donec consequat varius quam, nec bibendum sem. Integer hendrerit euismod gravida. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</p>
<p> Integer quis posuere ligula. Ut tempor quam vitae ante mollis, non maximus erat scelerisque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pellentesque porttitor laoreet. Nulla placerat nec turpis quis finibus. Praesent lacinia cursus convallis. Vivamus et egestas ante. Curabitur nunc odio, mattis et semper at, iaculis quis massa. Ut facilisis erat nec quam aliquam, nec fringilla nisl gravida. Morbi vulputate, enim sit amet fermentum vestibulum, tellus nunc faucibus sem, vel sodales sapien sapien eget mauris. Sed pulvinar lorem nec ante mollis euismod. Nunc enim magna, dignissim eu erat ac, tempor hendrerit risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras nec gravida massa.
</p> <script src='https://code.jquery.com/jquery-2.2.4.min.js'></script> <script src="js/index.js"></script>
</body>
</html>
Responsive nav - Script Codes CSS Codes
nav.flex { position: relative; height: 60px; display: flex; align-items: center; background: #424242; margin-bottom: 3rem;
}
nav.flex h1 { display: flex; align-self: stretch; align-items: center; color: #fff; padding: 0 1.5rem;
}
nav.flex button { align-self: stretch; transition: all .4s ease-out; padding: 0 1rem 0 1.5rem; outline: 0; border: 0; font-size: 0.9rem; font-weight: bold; background: #ba2814; color: #fff; cursor: pointer;
}
nav.flex button.hidden { transition: none; border-right: 0.5rem solid #ba2814; width: 0; padding: 0; overflow: hidden;
}
nav.flex button::after { content: attr(count); display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; background: #000; color: #f2f2f2; box-shadow: 0 0 1px 0 rgba(0,0,0,0.8); border-radius: 50%; font-size: 14px; line-height: 14px; margin-left: 1rem; margin-right: calc(-1rem + -8px);
}
ul.links { display: flex; justify-content: flex-end; flex: 1; overflow: hidden;
}
ul.links li { flex: none; padding: 1rem;
}
ul.links li a { color: #fff; text-decoration:none;
}
ul.links li a:hover { color: #ccc;
}
ul.hidden-links { position: absolute; background: #686868; right: 0; top: 100%;
}
ul.hidden-links li a { color: #fff; padding-right: 1rem; text-decoration:none;
}
ul.hidden-links li a:hover { color: #ccc;
}
ul.hidden-links.hidden { display: none;
}
ul.hidden-links li { padding: 1rem;
}
/*
-- Demo Styles
*/
* { box-sizing: border-box;
}
html { background: #fefefe;
}
body { padding: 2rem;
}
h5 { text-align: center; margin: auto; font-size: 0.8rem; line-height: 140%; margin-top: 1rem; max-width: 50ex;
}
p { line-height:1.5; margin-bottom: 2rem;
}
html { width: 100%; height: 100%; font-family: Helvetica, sans-serif;
}
Responsive nav - Script Codes JS Codes
$(function() { var $nav = $('nav.flex'); var $btn = $('nav.flex button'); var $vlinks = $('nav.flex .links'); var $hlinks = $('nav.flex .hidden-links'); var numOfItems = 0; var totalSpace = 0; var breakWidths = []; // Get initial state $vlinks.children().outerWidth(function(i, w) { totalSpace += w; numOfItems += 1; breakWidths.push(totalSpace); }); var availableSpace, numOfVisibleItems, requiredSpace; function check() { // Get instant state availableSpace = $vlinks.width() - 10; numOfVisibleItems = $vlinks.children().length; requiredSpace = breakWidths[numOfVisibleItems - 1]; // There is not enought space if (requiredSpace > availableSpace) { $vlinks.children().last().prependTo($hlinks); numOfVisibleItems -= 1; check(); // There is more than enough space } else if (availableSpace > breakWidths[numOfVisibleItems]) { $hlinks.children().first().appendTo($vlinks); numOfVisibleItems += 1; } // Update the button accordingly $btn.attr("count", numOfItems - numOfVisibleItems); if (numOfVisibleItems === numOfItems) { $btn.addClass('hidden'); } else $btn.removeClass('hidden'); } // Window listeners $(window).resize(function() { check(); }); $btn.on('click', function() { $hlinks.toggleClass('hidden'); }); check();
});
![Responsive nav - Script Codes](http://shots.codepen.io/tmarkart/pen/jrMEVB-512.jpg)
Developer | Tom Markart |
Username | tmarkart |
Uploaded | November 06, 2022 |
Rating | 3 |
Size | 5,123 Kb |
Views | 18,216 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Story Detail 1.0 | 16,604 Kb |
Slide out nav | 5,807 Kb |
MPP Contact Us | 8,887 Kb |
Election Widget Combo | 10,053 Kb |
Election Widget Vertical | 5,470 Kb |
Story Detail 1.0b | 17,747 Kb |
Overlay nav | 2,756 Kb |
Google Matched Content - rendered | 2,247 Kb |
Vertical Image Filler | 2,391 Kb |
CSS Animation Playground | 3,948 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Animating characters with jQuery | 042 | 2,776 Kb |
CSS3 Butterfly | Timohausmann | 3,430 Kb |
Nav Test -- cats 1 | Payls | 4,735 Kb |
Animated Logo | Shakdaniel | 2,672 Kb |
Particle Motion trajectories | Sniejadlik | 5,899 Kb |
Print element on a page | Mrs_snow | 2,081 Kb |
A Pen by MurabitoB | MurabitoB | 4,421 Kb |
Very Simple Slider | Doodlemarks | 2,682 Kb |
Growing Root - Scroll control - CANVAS | Cjonasw | 2,342 Kb |
Double box-shadow | Daubac402 | 1,436 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!