Анимация боковой панели с фиксированной позицией - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь, чтобы моя фиксированная боковая панель вставлялась или просто анимировалась в целом, но я не могу понять, как это сделать.Я попытался просто добавить некоторые переходы и обычные анимации, но они, похоже, не работают.Я должен держать это исправленным, если это возможно.Любая помощь приветствуется.

$('.open-menu').click(function() {
  $(".sidebar").toggleClass('open')
  $("body").toggleClass('no-scroll')
});
.wrap {
  margin-bottom: 54px;
}

.sidebar {
  background: black;
  width: 280px;
  height: calc(100% - 50px);
  position: fixed;
  -webkit-transform: translate3d(-100%, 0px, 0px);
  transform: translate3d(-100%, 0px, 0px);
  display: none;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
  -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0ms both;
  animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0ms both;
  overflow-y: auto;
  z-index: 10;
}

.open {
  display: block !important;
  -webkit-transform: translate3d(0px, 0px, 0px);
  transform: translate3d(0px, 0px, 0px);
  -webkit-animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0ms both;
  animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) 0ms both;
}

.no-scroll {
  position: fixed;
}

.content {
  flex-basis: 0;
  -ms-flex-positive: 1;
  flex-grow: 1;
  /* max-width: 100%; */
  position: relative;
  /* width: 100%; */
  min-height: 1px;
}

.drawer-btn-container {
  display: block;
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 100;
}

.drawer-btn {
  width: 100%;
  display: block;
  text-align: center;
  padding: 1rem;
  background: green;
  color: white;
}


/*Small devices (landscape phones, 576px and up)*/

@media (min-width: 576px) {}


/*Medium devices (tablets, 768px and up)*/

@media (min-width: 768px) {}


/*Large devices (desktops, 992px and up)*/

@media (min-width: 992px) {}


/*Extra large devices (large desktops, 1200px and up)*/

@media (min-width: 1200px) {
  .sidebar {
    display: block;
    -webkit-transform: translate3d(0px, 0px, 0px);
    transform: translate3d(0px, 0px, 0px);
    position: relative;
    overflow: hidden;
    height: 100%;
    -ms-flex-preferred-size: 0;
    /* flex-basis: 0; */
    -ms-flex-positive: 1;
    /* flex-grow: 1; */
    /* max-width: 100%; */
    position: relative;
    /* width: 100%; */
    min-height: 1px;
    width: 280px;
  }
  .wrap {
    margin-bottom: 0;
  }
  .drawer-btn-container {
    display: none;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container-fluid p-0 wrap">
  <div class="row no-gutters">
    <div class="col-auto scale-up-center">
      <div class="sidebar">


        Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>bottom<br></div>
    </div>
    <div class="col">
      <div class="content">Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>Content<br>bottom<br></div>
    </div>
  </div>
</div>

<div class="drawer-btn-container">
  <div class="row">
    <div class="col">
      <a href="#" class="drawer-btn open-menu">Main Menu</a>
    </div>
  </div>
</div>

http://jsfiddle.net/4xt9e2ro/

1 Ответ

0 голосов
/ 18 октября 2018

форма .sidebar удалить display: none;, изменить .open на .sideba.open и удалить display:block !important;

Но, честно говоря, ваш CSS немного грязный.Вы используете анимацию, но не объявляете ключевые кадры.Пожалуйста, прочитайте это: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations

Приветствия

...