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

1

Я пытаюсь заставить 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;
}
  • 0
    Не могли бы вы опубликовать соответствующий код для HTML и .js, вызывающих проблему?
  • 0
    CSS и JS были опубликованы.
Теги:
menu
sidebar

1 ответ

1

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

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

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

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

  • 0
    Я попробую это, но если вы посмотрите на демонстрационный сайт для slideout.js, у него его нет, и он плавный. slideout.js.org
  • 0
    Я взял полный пример кода из документа slideout.js и поместил его в демонстрацию codeandbox.io, и текст «Меню» по-прежнему не переходит должным образом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню