Tất nhiên slideDown
và slideUp
không làm những gì bạn muốn, bạn nói bạn muốn nó được trái/phải, không dẫn đầu/xuống.
Nếu chỉnh sửa của bạn cho câu hỏi thêm thẻ jquery-ui
có nghĩa là bạn đang sử dụng giao diện người dùng jQuery, tôi sẽ đi với nnnnnn's solution, sử dụng hiệu ứng của jQuery UI slide
.
Nếu không:
Giả sử menu bắt đầu ra có thể nhìn thấy (chỉnh sửa: oops, tôi thấy đó không phải là một giả định hợp lệ, xem lưu ý dưới đây), nếu bạn muốn nó trượt ra bên trái và sau đó trượt trở lại từ bên trái, bạn có thể làm điều này: 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});
}
});
});
Bạn cần đặt position: relative
trên phần tử menu.
Lưu ý rằng tôi đã thay thế toggle
bằng click
, vì hình thức toggle
đã bị xóa khỏi jQuery.
Nếu bạn muốn menu bắt đầu ẩn, bạn có thể điều chỉnh ở trên. Bạn muốn biết chiều rộng của phần tử, về cơ bản, khi đặt nó ra khỏi trang.
Phiên bản này không quan tâm liệu menu có được hiển thị ban đầu hay không: 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>
Nguồn
2013-07-14 11:45:40
Được rồi, vậy tại sao -1? –
Nếu câu hỏi của tôi là xấu, hãy giúp tôi cải thiện nó –
tôi nghĩ rằng -1 là không đặt những gì bạn đã thử ở đây .. – krishgopinath