Natürlich slideDown
und slideUp
nicht tun, was Sie wollen, Sie sagten, Sie wollen, dass es nach unten nicht/links/rechts werden, oben.
Wenn deine Bearbeitung auf Ihre Frage Hinzufügen der jquery-ui
Tag bedeutet, dass Sie jQuery UI verwenden, würde ich mit nnnnnn's solution gehen, slide
Effekt jQuery UI verwenden.
Falls nicht:
das Menü Unter der Annahme beginnt sichtbar (edit: oops, ich sehe, dass keine gültige Annahme ist, siehe Hinweis unten), wenn Sie es wollen nach links verschieben und dann später von links wieder reinschieben, könntest du das tun: 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});
}
});
});
Sie werden position: relative
auf dem Menüelement setzen müssen.
Beachten Sie, dass ich Ihre toggle
durch click
ersetzt, da diese Form von toggle
aus jQuery entfernt wurde.
Wenn Sie wollen, dass das Menü ausgeblendet wird, können Sie das oben einstellen. Sie möchten die Breite des Elements im Grunde wissen, wenn Sie es von der Seite weglegen.
Diese Version kümmert sich nicht, ob das Menü anfänglich sichtbar ist oder nicht: 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>
Okay, also warum -1? –
Wenn meine Frage schlecht ist, bitte helfen Sie mir, es zu verbessern –
Ich denke, die -1 ist für nicht setzen, was Sie hier versucht .. – krishgopinath