2014-05-15 88 views
0

有没有办法让refreshClass()关闭的菜单在刷新页面后自动关闭?jQuery - toggleClass()需要刷新时关闭

调用toggleClass()的按钮工作正常。会话还会记住菜单是否隐藏,因此刷新时会执行关闭动画。有没有简单的方法让菜单在刷新时隐藏,而不是执行动画?

为了进一步澄清,这里是一个quick video I took of the issue

initialize: function() 
    { 
     if(sessionStorage.getItem('sidebar.open') == 'false') 
     { 
      this.toggle(); 
     } 
    }, 

    toggle: function() 
    { 
     var self = this; 

     $(this.sidebarEl).toggleClass('active'); 

     _.each(this.contentEl, function(el) 
     { 
      $(el).toggleClass('active'); 
     }); 

     sessionStorage.setItem('sidebar.open', 
           $(this.sidebarEl).hasClass('active')); 
    }, 

回答

0

我假设的过渡是一个CSS过渡,对不对?这就是为什么你只是改变班级...

想想也许取消转换,然后重新添加它。

CSS

.notransition { /*class to cancel transition*/ 
    -webkit-transition: none !important; 
    -moz-transition: none !important; 
    -o-transition: none !important; 
    -ms-transition: none !important; 
    transition: none !important; 
} 

HTML

<div class="menu nontransition">...</div> <!-- when the page is loaded, use nontransition... --> 

JS

initialize: function() 
{ 
    if(sessionStorage.getItem('sidebar.open') == 'false') 
    { 
     this.toggle(); 
    } 
    $(this.sidebarEl).removeClass("nontransition") // Then, delete nontransition, and allow the transition to work 
},