javascript - 侧边菜单栏的过渡效果

标签 javascript jquery html css transition

我正在尝试获取固定的侧面菜单栏,该菜单栏在单击菜单时打开。

它按预期工作,我现在需要的只是在展开/关闭它时应用平滑过渡效果。并优化jquery代码,我目前的代码是非常手动的。

这是使用的脚本

if ( $( ".sidebar" ).hasClass( "sidebar_collapsed" ) ) { 
    $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).hide(); 
}

$( ".sidebar_list > li > a" ).click(function() {
  $(".sidebar").removeClass("sidebar_collapsed");
  $( ".sidebar > ul > li" ).removeClass("active");
  $(this).parent().addClass("active");
  $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).show();
});

$( ".close_sidebar, .home" ).click(function() {
  $(this).addClass("active");
  $(".sidebar").addClass("sidebar_collapsed");
  $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).hide();
});

<强> DEMO

最佳答案

在 jQuery showhide 中添加 slow 将带来过渡效果。

if ( $( ".sidebar" ).hasClass( "sidebar_collapsed" ) ) { 
    $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).hide("slow"); 
}

$( ".sidebar_list > li > a" ).click(function() {
  $(".sidebar").removeClass("sidebar_collapsed");
  $( ".sidebar > ul > li" ).removeClass("active");
  $(this).parent().addClass("active");
  $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).show("slow");
});

$( ".close_sidebar, .home" ).click(function() {
  $(this).addClass("active");
  $(".sidebar").addClass("sidebar_collapsed");
  $( "ul.tree, .close_sidebar, .sidebar > ul > li > a > span, .sidebar_list > li > a > span" ).hide("slow");
});

此外,在“宽度更改”中添加 css transition 也会产生一个小动画

.sidebar{
  background:#CBCAD8;
  width:180px ;
  color:#868695;
  padding:10px 8px 0 0;
  position:fixed;
  left:0;
  top:25px;
  bottom:0;
   transition: width .5s ease-in;
}

这是Fiddle

关于javascript - 侧边菜单栏的过渡效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408538/

相关文章:

javascript - 算法连接四个javascript

javascript - 自动从 HTML 文件中删除换行符

javascript - 在 jquery 中将高度更改或动画化为 css 默认值

javascript - 如何使用 JavaScript 使用 Bootstrap Collapse 获取特定值

asp.net - 如何为我的网络应用程序获取类似 Gmail 的文件上传功能?

javascript - 如何开始制作 iAd

javascript - 所以我使用 Javascript const 关键字,在 IE 中会发生什么?

javascript - 将参数传递给backbone fetch url以处理非标准api

html - 固定位置菜单覆盖部分内容

python - 如何在 Beautiful Soup 4 中将包含子标签的标签与空标签分开?