#javascript #css #reactjs #next.js #tailwind-css
Вопрос:
Если я условно визуализирую компонент в зависимости от некоторого состояния, как я могу анимировать его переход между открытым и закрытым состояниями в React с помощью TailwindCSS?
{successMessage amp;amp; (
<div className="flex transition-all ease-in-out duration-300 bg-gray-200 w-44 items-center justify-between px-2 rounded">
<p>Added to watchlist!</p>
<button onClick={() => setSuccessMessage(false)}>X</button>
</div>
)}
Этот код наполовину работает, но в нем нет анимации или переходного периода. Как я могу это исправить?
Комментарии:
1. Вы можете сделать так, как MB_ предложил в своем ответе, или вы можете предоставить некоторые реальные анимации затухания или что-то в этом роде.
Ответ №1:
Попробуйте что-нибудь вроде этого :
<div className={`flex transition-all ease-in-out duration-300 bg-gray-200 w-44 items-center justify-between px-2 rounded ${your_state ? 'opacity-100' : 'opacity-0'}`}>
...
</div>
Ответ №2:
Я бы рекомендовал для этого библиотеку AOS, так как вам нужно будет проделать еще немного работы, чтобы это работало с TailwindCSS.
Попробуйте это
Установите Aos
npm install aos --save
Внесите в свое досье
import React, { useEffect } from "react";
import AOS from 'aos';
import "aos/dist/aos.css";
useEffect(() => {
AOS.init({
duration : 1000
});
}, []);
Вы можете изменять продолжительность по своему усмотрению.
Добавить в качестве атрибута в данные HTML-тега
-aos=»имя анимации»
Пример
<div> data-aos="fadeIn" </div>
Дополнительные атрибуты, которые вы можете использовать
data-aos="fade-up"
data-aos-offset="200"
data-aos-delay="50"
data-aos-duration="1000"
data-aos-easing="ease-in-out"
data-aos-mirror="true"
data-aos-once="false"
data-aos-anchor-placement="top-center"