I have a "Menu" button on the left hand side of the page and once selected I have a div containing the menu items show. I then have another button that can be selected to hide the menu.
Ideally I want this to slide out (from left to right) and back but have been unsuccessful in getting this working well. I have tried using animate and SlideToggle but none work well for what I have. Any tips?
<div id="cat_icon">Menu</div>
<div id="categories">
<div CLASS="panel_title">Menu</div>
<div CLASS="panel_item">
<template:UserControl id="ucCategories" src="UserControls/ProductCategories.ascx" />
</div>
</div>
$('#cat_icon').click(function () {
$('#categories').toggle();
$('#cat_icon').hide();
});
$('.panel_title').click(function () {
$('#categories').toggle();
$('#cat_icon').show();
});
Hide #categories initially
#categories {
display: none;
}
and then, using JQuery UI, animate the Menu slowly
var duration = 'slow';
$('#cat_icon').click(function () {
$('#cat_icon').hide(duration, function() {
$('#categories').show('slide', {direction: 'left'}, duration);});
});
$('.panel_title').click(function () {
$('#categories').hide('slide', {direction: 'left'}, duration, function() {
$('#cat_icon').show(duration);});
});
You can use any time in milliseconds as well
var duration = 2000;
If you want to hide on class='panel_item' too, select both panel_title and panel_item
$('.panel_title,.panel_item').click(function () {
$('#categories').hide('slide', {direction: 'left'}, duration, function() {
$('#cat_icon').show(duration);});
});
Sliding from the right:
$('#example').animate({width:'toggle'},350);
Sliding to the left:
$('#example').toggle({ direction: "left" }, 1000);
Use this...
$('#cat_icon').click(function () {
$('#categories').toggle("slow");
//$('#cat_icon').hide();
});
$('.panel_title').click(function () {
$('#categories').toggle("slow");
//$('#cat_icon').show();
});
See this Example
Greetings.
来源:https://stackoverflow.com/questions/14438577/jquery-toggle-slide-from-left-to-right-and-back