Naturalmente slideDown
e slideUp
non fai quello che vuoi, hai detto che vuole che sia a sinistra/destra, non alto/basso.
Se la tua modifica alla tua domanda aggiungendo il tag jquery-ui
significa che si sta utilizzando jQuery UI, mi piacerebbe andare con nnnnnn's solution, usando l'effetto di jQuery UI slide
.
In caso contrario:
Supponendo che il menu inizia visibile (edit: oops, vedo che non è un'ipotesi valida, vedi nota sotto), se si vuole farlo scivolare verso sinistra e poi più tardi fai scorrere di nuovo da sinistra, potresti fare questo: Live Example | Live Source
$(document).ready(function() {
// Hide menu once we know its width
$('#showmenu').click(function() {
var $menu = $('.menu');
if ($menu.is(':visible')) {
// Slide away
$menu.animate({left: -($menu.outerWidth() + 10)}, function() {
$menu.hide();
});
}
else {
// Slide in
$menu.show().animate({left: 0});
}
});
});
Avrete bisogno di mettere position: relative
sull'elemento menu.
Si noti che ho sostituito il toggle
con click
, perché tale modulo di toggle
è stato rimosso da jQuery.
Se si desidera che il menu si avvii nascosto, è possibile regolare quanto sopra. Vuoi sapere la larghezza dell'elemento, in pratica, quando lo si mette fuori pagina.
Questa versione non interessa se il menu è inizialmente visibile o meno: Live Copy | Live Source
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<div id="showmenu">Click Here</div>
<div class="menu" style="display: none; position: relative;"><ul><li>Button1</li><li>Button2</li><li>Button3</li></ul></div>
<script>
$(document).ready(function() {
var first = true;
// Hide menu once we know its width
$('#showmenu').click(function() {
var $menu = $('.menu');
if ($menu.is(':visible')) {
// Slide away
$menu.animate({left: -($menu.outerWidth() + 10)}, function() {
$menu.hide();
});
}
else {
// Slide in
$menu.show().css("left", -($menu.outerWidth() + 10)).animate({left: 0});
}
});
});
</script>
</body>
</html>
fonte
2013-07-14 11:45:40
Ok, allora perché -1? –
Se la mia domanda è sbagliata, ti prego di aiutarmi a migliorarlo –
penso che il -1 sia per non mettere quello che hai provato qui .. – krishgopinath