Как изменить анимированную ширину div с помощью Vue / Velocity? - PullRequest
0 голосов
/ 16 марта 2020

Возможно, заголовок этого вопроса слишком упрощает то, что я пытаюсь выполнить sh, или, возможно, я не смотрю на это с хорошей точки зрения. У меня есть боковая навигация, которую я хочу, чтобы пользователи могли свернуть и развернуть, но в любом случае она все еще отображается, просто с другой шириной.

Когда загружена боковая панель, каждый элемент навигации имеет go и заголовок. Когда вы «свернете» меню, заголовок должен исчезнуть, но lo go останется. Показывать / скрывать заголовок при свертывании просто, но оживить его немного сложно.

Мой первый подход был css, и он работал, но не очень гладко, поэтому я решил обратиться к библиотеке velocity-animate. Это не похоже на работу вообще. Я использую маршрутизатор Vue, и эти элементы навигации являются ссылками маршрутизатора, сгенерированными из al oop. Вот как выглядит код

<router-link to="{{ $tool->menu() }}">
    <div class="sidebar-tool-icon-container">
        {{ $tool::icon() }}
    </div>
    <transition-group 
        tag="div"
        @before-enter="beforeEnter"
        @enter="enter"
        @leave="leave"
        :css="false"
    >
    <div class="sidebar-tool-title-container" v-if="!collapsed" :key="{{ $key }}">
        <h3>{{ $tool->displayName }}</h3>
    </div>
    </transition-group>
</router-link>

Свойство collapse переключается, когда пользователь нажимает «свернуть / развернуть». Вот мой javascript, который должен управлять анимацией:

beforeEnter(el) {
    el.style.opacity = 1;
    el.style.width = '3em';
},
enter(el, done) {
  Velocity(
    el,  
    { opacity: 1, width: '10em' },
    { duration: 500, easing: 'easeInCubic', complete: done }
  )
},
leave(el, done) {
  Velocity(
    el, 
    { opacity: 1, width: '3em' },
    { duration: 500, easing: 'easeOutCubic', complete: done }
  )
}

Кажется, анимация не работает. Сам по себе коллапс / расширение работает, как и ожидалось, но анимации нет, и в последовательности есть небольшая ошибка. Как мне заставить эту анимацию работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...