J'essaye de construire un accordéon horizontal multi-niveau simple (ou un menu de diapositives) dans Jquery. Hunter Daley a gracieusement fourni le code Jquery, mais je n'arrive pas à comprendre le css. Je sais que c'est newb, mais je suis vraiment coincé. Quand Ul li Ul glisse, cela crée un saut de ligne, je voudrais que tout soit affiché en ligne, sans interruption. J'ai essayé les espaces: nowrap, afficher en ligne, etc Cela ne semble pas le faire. Des idées?JQuery Accordéon horizontal CSS
Selon, la réponse de Glavic: Je tente de d'utiliser des flotteurs, mais si je fais des bugs Safari out et flash sous-niveau UL lors de l'animation:
En utilisant Flotteurs:
droit , J'essayais de le faire sans les flotteurs. J'essaie de rester avec la fonction d'animation. Safari émet une bogue et fait clignoter le sous-élément au cours de l'animation.
<style type="text/css">
<!--
body {
font-size: 1em;
line-height: 1em;
}
ul {
background-color: yellow;
list-style: none;
margin: 0;
padding: 0;
height: 1em;
float: left;
}
ul li {
background-color: aqua;
float: left;
}
ul li ul {
background-color: blue;
}
ul li ul li {
background-color: green;
}
a, a:link, a:hover, a:visited, a:active {
color: black;
text-decoration: none;
float: left;
}
-->
</style>
Original Post:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<title>untitled</title>
<style type="text/css">
<!--
ul{
list-style: none;
background-color: yellow;
margin: 0;
padding: 0;
white-space: nowrap;
}
ul li {
background-color: aqua;
display: inline;
}
ul li ul {
background-color: blue;
}
ul li ul li {
background-color: green;
}
a, a:link, a:hover, a:visited, a:active {
color: black;
text-decoration: none;
}
-->
</style>
<script type="text/javascript">
var $current = null;
$(document).ready(function(){
$("ul li ul").hide(); // hide submenus by default on load
$("ul li a").click(function(){
var $sub = $(this).next();
if ($sub.css("display") == "none")
{
if ($current != null)
$current.animate({ width: 'hide' }); // if you want to only show one sub at a time
$sub.animate({ width: 'show' });
$current = $sub;
}
else
{
$sub.animate({ width: 'hide' });
$current = null;
}
});
});
</script>
</head>
<body>
<ul>
<li>
<a href="#">Top-level 1</a>
</li>
<li>
<a href="#">Top-level 2</a>
<ul>
<li><a href="#">Bottom Level A1</a></li>
<li><a href="#">Bottom Level A2</a></li>
<li><a href="#">Bottom Level A3</a></li>
<li><a href="#">Bottom Level A4</a></li>
</ul>
</li>
<li>
<a href="#">Top-level 3</a>
<ul>
<li><a href="#">Bottom Level B1</a></li>
<li><a href="#">Bottom Level B2</a></li>
</ul>
</li>
<li>
<a href="#">Top-level 4</a>
</li>
</ul>
</body>
</html>
Jetez un oeil ici http://stackoverflow.com/a/27262010/1922144 – davidcondrey