Меню Slideout.js не гладкое - PullRequest
       18

Меню Slideout.js не гладкое

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

Я пытался заставить slideout.js правильно работать для моего сайта.

Проблема в том, что при открытии меню текст появляется до полного открытия, а когда меню закрывается, текст исчезает после закрытия меню.

Я посмотрел на CSS и убедился, что в меню есть фоны, а высота правильно установлена.

Демонстрация (просмотр с мобильного телефона) - http://stefan.admark.co.uk/gates/index.php

JS:

      window.onload = function() {
        var slideout = new Slideout({
          'panel': document.getElementById('main'),
          'menu': document.getElementById('menu'),
          'side': 'right',
          'padding': 256,
  'tolerance': 70
        });

        document.querySelector('.js-slideout-toggle').addEventListener('click', function() {
          slideout.toggle();
        });

      };

CSS:

.slideout-menu {
  position: fixed;
  top: 80px;
  bottom: 0;
  width: 256px;
  /* min-height: 100vh; */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 999;
  display: none;
  padding-left:20px;
}

.slideout-menu-left {
  left: 0;
}

.slideout-menu-right {
  right: 0;
}

.slideout-panel {
  position: relative;
  z-index: 1;
  will-change: transform;
  background-color: #ffffff; /* A background-color is required */
  min-height: 100%;
  -webkit-box-shadow: 6px 0px 5px 0px rgba(0,0,0,0.1);
-moz-box-shadow: 6px 0px 5px 0px rgba(0,0,0,0.1);
box-shadow: 6px 0px 5px 0px rgba(0,0,0,0.1);
}

.slideout-open,
.slideout-open body,
.slideout-open .slideout-panel {
  overflow: hidden;
}

.slideout-open .slideout-menu {
  display: block;
}

@media screen and (min-width: 1000px) {
  .slideout-panel {
    /* margin-left: 256px; */
  }

  .slideout-menu {
    display: none;
  }

}

.panel:before {
  content: '';
  display: block;
  background-color: rgba(0,0,0,0);
  transition: background-color 0.5s ease-in-out;
}

.panel-open:before {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  background-color: rgba(0,0,0,.5);
  z-index: 99;
}

1 Ответ

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

Похоже, ваш элемент <nav> на вашей странице не имеет CSS перехода.

Например, к вашему элементу <main> применен следующий переход:

transition: -webkit-transform 300ms ease 0s; transform: translateX(-256px)

Независимо от того, какой у вас javascript, запускающий переход для вашего элемента <main>, при применении к <nav> должен также произойти переход текста и всего внутри <nav>.

...