的CSS

#overlay{
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #000;
    z-index:-1;
    opacity: 0;
    visibility:hidden;
    -webkit-transition: all 0.2s linear;
       -moz-transition: all 0.2s linear;
        -ms-transition: all 0.2s linear;
         -o-transition: all 0.2s linear;
            transition: all 0.2s linear;
}
.sidePanelOpen #overlay{
    opacity:1;
    visibility:visible;
    z-index: 9000;
}

.sidebar-panel{
    width: 440px;
    position: fixed;
    top: 0;
    bottom: 0;
    right:-100%;
    background: #f9f9f9;
    padding: 35px;
    z-index: 9100;
    overflow-y: auto;
  -webkit-transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
     -moz-transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
       -o-transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
          transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000); /* easeOutExpo */
  -webkit-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
     -moz-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
       -o-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
          transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000); /* easeOutExpo
}
.sidePanelOpen .sidebar-panel{
    right:0;
}


jQuery查询

$('.icon-btn').on('click', function() {
    $('body').addClass('sidePanelOpen');

});
$('#overlay').on('click', function() {
    $('body').removeClass('sidePanelOpen');
});


的HTML

<div class="sidebar-panel">
  <div>
    <div style="border: 1px solid #eee;">
      test
    </div>
  </div>
</div>


DEMO Jsfiddle

问题是:
1.单击图标时,侧边栏将缓慢滑动-过渡时正确
2.当关闭叠加时,边栏滑动得太快-这是不正确的。

侧栏应以相同的动作滑入和滑出(请参见上面的过渡CSS)。我尝试将过渡添加到.sidePanelOpen .sidebar-panel {},但是在单击叠加时,边栏仍然滑出得太快。

如何使侧边栏以相同的动作滑入和滑出?

最佳答案

实际上,它们是相同的,但您不会注意到,因为easeOutExpo提供了快速启动和慢速结束的功能。改为使用easyInOutExpo和以下数组:

cubic-bezier(1, 0, 0, 1);


单击here进行更新的小提琴。您现在所要做的就是在播放时设定时间。

关于jquery - 侧栏应以与滑入相同的方式滑出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24760799/

10-09 14:05