#vue.js #lottie
Вопрос:
У меня есть файл json анимации Лотти под названием поздравления.json. Я включил путь к файлу внутри src в тег lottie player следующим образом:
lt;lottie-player class="justify-content-center" src="../../../congratulations.json" background="transparent" speed="1" style="width: 300px; height: 300px" loop controls autoplay gt;lt;/lottie-playergt;
Я хочу запустить эту анимацию игрока лотти, нажав на кнопку в vue.js.
Я закодировал так:
lt;div class="justify-content-center"gt; lt;button v-on:click="cong" class="btn"gt; animation lt;/buttongt; lt;/divgt; methods: { cong() { lt;lottie-player class="justify-content-center" src="../../../congratulations.json" background="transparent" speed="1" style="width: 300px; height: 300px" loop controls autoplay gt;lt;/lottie-playergt;; }, }
Но это не работает. Нужно ли мне устанавливать какие-либо дополнения/расширения или мой код неверен ?
Комментарии:
1. попробуйте добавить telda
~
перед путем, чтобы webpack понял, что это путь2. Пожалуйста, будьте добры, покажите мне, куда включить телду. Мне это не совсем ясно.
3. nvm, посмотрел его, и, похоже, он работает только с CSS, это было бы
src="~../../../congratulations.json"
Ответ №1:
Это не похоже на правильный способ делать то, что вы хотите в Vue. Я предполагаю, что вы хотите показать игрока лотти при нажатии кнопки. Если это так, то вот один из способов сделать это:
У вас может быть логическая переменная в data
компоненте, например showPlayer
, которая изначально будет установлена в false
значение . Затем вы можете удалить cong
метод и получить что-то вроде этого:
lt;div class="justify-content-center"gt; lt;button v-on:click="showPlayer = true" class="btn"gt; animation lt;/buttongt; lt;lottie-player v-if="showPlayer" class="justify-content-center" src="**../../../congratulations.json**" background="transparent" speed="1" style="width: 300px; height: 300px" loop controls autoplay gt;lt;/lottie-playergt; lt;/divgt;
Конечно, это всего лишь код шаблона. Вам нужно иметь логическую переменную в компоненте data
. Атрибуты тега lottie-игрока также должны быть правильными, чтобы это работало.
Комментарии:
1. Здесь showPlayer-это переменная. Я не являюсь функцией. Итак, почему вы включили его в v-on:нажмите=» »
2. Это действительно переменная величина. Тем не менее, вы можете написать однострочные выражения JS внутри v-on (и другие директивы Vue, такие как v-bind и v-if), как мы, поэтому я пишу выражение, чтобы установить showPlayer в значение true внутри v-on (это простая вещь, но вы можете заключить его в метод, если действительно хотите).
3. Сработало…….. наконец-то