Отвечают ли неупорядоченные списки переходу CSS?

0

Вот мой JSFiddle. То, что я пытаюсь сделать, - это эффект перехода между двумя неупорядоченными списками. Когда вы нажимаете на магазин, вы переходите к подменю. Когда вы нажимаете магазин в подменю, он возвращает вас в главное меню. Почему он не скользит или не действует? Моя цель - перевести подменю справа налево и перейти к главному меню слева направо. Как я могу сделать эту работу?

<div class="mobile-nav">
    <ul class="main-mobile-menu transition">
        <li class="has-submenu"><a href="#" title="SHOP" data-menu-id="shop">SHOP</a></li>
        <li class="has-submenu"><a href="#" title="BRANDS" data-menu-id="brands">BRANDS</a></li>
        <li><a href="#" title="ABOUT" >ABOUT</a></li>
        <li><a href="#" title="CONTACT" >CONTACT</a></li>
    </ul>
    <ul id="shop-submenu" class="hide transition">
        <li><a href="#" title="SHOP" data-menu-id="main-mobile-menu">SHOP</a></li>
        <li class="has-submenu"><a href="#" title="ACCESSORIES" data-menu-id="accessories">ACCESSORIES</a></li>
        <li class="has-submenu"><a href="#" title="ART" data-menu-id="art">ART</a></li>
        <li class="has-submenu"><a href="#" title="WOMENS" data-menu-id="womens">WOMENS</a></li>
        <li class="has-submenu"><a href="#" title="MENS" data-menu-id="mens">MENS</a></li>
        <li class="has-submenu"><a href="#" title="SHOES" data-menu-id="shoes">SHOES</a></li>
        <li><a href="#" title="GIFT CERTIFICATE">GIFT CERTIFICATE</a></li>
    </ul>
</div>

Это мой CSS:

.mobile-nav{
    position: absolute;
    height: 100%;
    padding: 0px;
    left: 0px;
    top: 0px;
    z-index: 0;
    overflow: hidden;
}

.transition{
    -webkit-transition: none 0.4s ease;
    -moz-transition: none 0.4s ease;
    -ms-transition: none 0.4s ease;
    -o-transition: none 0.4s ease;
    transition: none 0.4s ease;
    -webkit-transition-property: top, right, left, bottom, border;
    -moz-transition-property: top, right, left, bottom, border;
    -ms-transition-property: top, right, left, bottom, border;
    -o-transition-property: top, right, left, bottom, border;
    transition-property: top, right, left, bottom, border;
}

.hide{
    display: none;
}

.open{
    display: block;
}
  • 0
    Вы не можете переходить display
Теги:

2 ответа

2
Лучший ответ

Вы меняете свойство display, но:

  • display не может быть перенесен
  • вы не включили его в список свойств, которые хотите перейти

Выберите свойство, которое можно переместить, измените его вместо display и поместите в список, который вы установили для transition-property.

  • 0
    @Mathias Это имеет смысл, но я все еще не могу заставить его работать. Я установил # shop-submenu слева: 100px и .transition слева: 0px. left - это свойство, которое может быть передано, но ничего не происходит. Смотрите обновленный JSFiddle .
  • 1
    Свойство, которое вы переходите, должно быть свойством, которое вы меняете . Он должен перейти от значения A к значению B, чтобы можно было генерировать анимацию значений между A и B. Вы все еще изменяете свойство display . Пока вы назначаете left свойство, вы никогда не меняете его.
Показать ещё 1 комментарий
0

Я понятия не имею, чего вы хотите достичь. Подменю должно выйти из воздуха справа? Меню появляется слева? Пожалуйста, объясните себя более подробно, когда зададите вопрос.

  • Это не хорошая семантика, чтобы сделать другую ul для каждого пункта меню, который у вас есть, и поместить их в основное меню. Вы можете вложить ul внутри li.

  • Если у вас класс .hide, вам не нужен класс, например .open. В jQuery просто удалите или переключите этот класс

  • Вы не можете просто ожидать, что элемент сделает анимацию без ввода какого-либо ввода, например, наведения или щелчка. Прочитайте эту статью о CSS-tricks.com, как сделать анимацию. Вы можете отредактировать свойство в jquery, и если он будет выполнен правильно,

  • Вы установили #shop-menu: left: 100px. Если вы используете left/top/right/bottom вам нужно установить свой элемент как absolute и relative. Подробнее об этом читайте здесь.

  • Вы можете заменить e.currentTarget на this если хотите

  • 0
    Так как я больше не могу ставить ссылки из-за репутации. Вот ссылка на обновленную скрипку с эффектом слайда. Сделано в чистом jQuery jsfiddle.net/LBNtP/4
  • 0
    Да, на оба ваших вопроса. Если вы хотите увидеть, как это должно работать, перейдите сюда , сверните ваш браузер на мобильный и нажмите кнопку меню. Если вы щелкнете вокруг, то увидите, что навигационное меню перемещается слева направо и наоборот.

Ещё вопросы

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