How to make jQuery UI nav menu horizontal?
You can do this:
/* Clearfix for the menu */
.ui-menu:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
and also set:
.ui-menu .ui-menu-item {
display: inline-block;
float: left;
margin: 0;
padding: 0;
width: auto;
}
JQuery UI: Horizontal Menu
I've found this CSS NAV Generator which would solve the problem (kind of ..):
http://cssmenumaker.com/builder/1444006
How to create a horizontal JQuery 1.9 Menu?
Possible duplicate from How to make jQuery UI nav menu horizontal?
But you can definitely do it: it is not a jQuery issue, you just need to style the affected elements with CSS, which are the .ui-menu
and .ui-menu-item
classes.
Menu and menuitem orientation issue in Jquery
Using some menu params you can get this working as horizontal menu
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test Menu</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
<script>
$(function() {
$( "#menu" ).menu({ position: { my: "left top-10", at: "right" } });
});
</script>
<style>
.ui-menu li{ display: inline-block;}
.ui-menu li ul {
top: 100%!important;
left: 0!important;
}
.ui-menu li ul ul {
top: 0%!important;
left: 100%!important;
}
</style>
</head>
<body>
<ul id="menu">
<li class="ui-state-disabled">Aberdeen</li>
<li>Ada</li>
<li>Adamsville</li>
<li>Addyston</li>
<li>Delphi
<ul>
<li class="ui-state-disabled">Ada</li>
<li>Saarland</li>
<li>Salzburg an der schnen Donau</li>
</ul>
</li>
<li>Saarland</li>
<li>Salzburg
<ul>
<li>Delphi
<ul>
<li>Ada</li>
<li>Saarland</li>
<li>Salzburg</li>
</ul>
</li>
<li>Delphi
<ul>
<li>Ada</li>
<li>Saarland</li>
<li>Salzburg</li>
</ul>
</li>
<li>Perch</li>
</ul>
</li>
<li class="ui-state-disabled">Amesville</li>
</ul>
</body>
</html>
Has anyone seen a jQuery horizontal nav menu that will dynamically adjust its size?
You can easily do it yourself, take a look at this Fiddle, or run the snippet below (full page):
$(document).on('ready', function () { function getHiddenItems() { var isOneLine = true; var topPosition = false; var invisibleItems = $('<ul/>'); $('.menu li').each(function () { var thisPosition = $(this).position(); if (topPosition === false) { topPosition = thisPosition.top; } else if (thisPosition.top > topPosition) { invisibleItems.append($(this).clone()); isOneLine = false; }; }); return isOneLine ? false : invisibleItems; };
function checkMenu() { $('.more').hide(); var hiddenItems = getHiddenItems(); if (!hiddenItems) {
$('.more_menu').html(''); } else { $('.more').show(); /* What items are not visible now? */ hiddenItems = getHiddenItems(); $('.more_menu').html('<ul>' + hiddenItems.html() + '</ul>'); }; }; $('.more').on('click', function (e) { e.preventDefault(); $('.more').toggleClass('more_menu_opened'); $('.more_menu').toggleClass('active'); }); $(window).on('resize', checkMenu); checkMenu();});
* { margin: 0; padding: 0;}body { margin: 20px 0; font-family: Arial, sans-serif;}.menu { list-style-type: none; height: 35px; overflow: hidden;}.more_menu { display: none;}.more_menu.active { display: block;}.menu li { display: block; float: left; height: 35px; line-height: 35px; white-space: nowrap; padding: 0 10px;}.more { display: block; float: right; height: 35px; line-height: 35px; white-space: nowrap; padding: 0 10px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><a class="more" href="#show_all">More</a><ul class="menu"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> <li>Item 4</li> <li>Item 5</li> <li>Item 6</li></ul><br /><br /><div class="more_menu"></div>
How can I get my menu dropdown direction to change at the edge of the viewport?
I've managed to do, what I want, with less expenses than thought ) Idea that do not touch all children let menu handle it itself, but instead correct first child behavior.
$(document).ready(function() {
$('.information_menu_root_ul').menu();
$('.information_menu_root_ul > li > .ui-menu').addClass('information_menu_first_child');
});
.information_menu_root_ul {
display: none;
position: relative;
background-color: #c7e6b3 !important;
}
.information_menu_item {
width: 300px;
}
.information_menu_first_child {
position: absolute;
top: 101% !important;
left: 0px !important;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script>
<div class="information_menu_item">Header(for hover)
<ul class="information_menu_root_ul">
<li>
<div class="information_menu_item">Item 1</div>
<ul>
<li>
<div class="information_menu_item">Item 2</div>
<ul>
<li>
<div class="information_menu_item">Item 3</div>
<ul>
<li>
<div class="information_menu_item">Item 4</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Related Topics
How to Stick a Footer to Bottom in CSS
How to Use a CSS Wildcard in the Middle of an Attribute Selector
Equal Height of Elements Inside Grid Item with CSS Grid Layout
Why Doesn't Inset Box-Shadow Work Over Images
Changing Chunk Background Color in Rmarkdown
Webkit Backface Visibility Not Working
Transparent Rounded Corners on Google Map
How to Apply a CSS Transition to the Overflow Property
Custom.CSS Has Stopped Working in 32.0.1700.76 M Google Chrome Update
Why Does My Django Admin Site Not Have Styles/CSS Loading
How to Check Which CSS Styles Are Being Used or Not Used on a Web Page
Browser Support for CSS :First-Child and :Last-Child
Why Can't I Animate Custom Properties (Aka CSS Variables)
Why Doesn't [CSS Feature] Work in [Browser] But Works in Others
Can You Set a Border Opacity in Css
CSS Select the First Child from Elements with Particular Attribute