使用 React JS 和 Tailwind CSS 进行 React Tilt

2024-02-07 22:04:13 浏览数 (1)

React Tilt是一个很酷的工具,它为我们的网站元素添加了运动和动画效果。通过给元素添加浮动和倾斜效果,使页面看起来更有趣。React Tilt易于使用,为我们的应用程序带来一丝魔法的触感。

入门步骤

首先,使用Vite创建一个新的React应用,并添加Tailwind CSS。接下来,添加React Tilt:

代码语言:bash复制
npm i react-tilt

React Tilt配置选项

以下是React Tilt包的配置选项:

  • Reverse(反转): 确定倾斜方向是否反转。
  • Max(最大值): 设置最大倾斜旋转角度。
  • Perspective(透视): 调整变换透视,影响倾斜效果的强度。
  • Scale(缩放): 指定元素的缩放,允许它们看起来更大或更小。
  • Speed(速度): 控制进入/退出转场的速度,决定倾斜效果发生的速度。
  • Transition(过渡): 启用或禁用进入/退出的平滑过渡。
  • Axis(轴): 定义哪个轴(X或Y)应该在倾斜时禁用。
  • Reset(重置): 确定是否在退出时重置倾斜效果或保持不变。
  • Easing(缓动): 指定进入/退出转场的缓动函数,影响动画的平滑度。

Tilt选项

card.jsx文件中,为卡片组件定义一些选项,以便与React Tilt一起使用。在本教程中,我们将使用默认选项,但请随意查看自定义选项或根据需要创建新选项。

代码语言:jsx复制
import { Tilt } from 'react-tilt';

const defaultOptions = {
  reverse: false,
  max: 35,
  perspective: 1000,
  scale: 1.1,
  speed: 1000,
  transition: true,
  axis: null,
  reset: true,
  easing: "cubic-bezier(.03,.98,.52,.99)",
}

const customOptions = {
  reverse: true,
  max: 45,
  perspective: 1500,
  scale: 1.2,
  speed: 2000,
  transition: true,
  axis: "X",
  reset: false,
  easing: "cubic-bezier(.2, .8, .3, 1)"
}

Card JSX

现在让我们看一下卡片组件本身。它将Tilt组件作为来自App组件的props的包装器,并接收image、title和description。

代码语言:jsx复制
const Card = ({ image, title, description }) => {
  return (
    <Tilt options={defaultOptions}>
      <div className="relative w-64 h-80 bg-white bg-opacity-20 backdrop-filter backdrop-blur-lg shadow-md rounded-xl overflow-hidden">
        <img src={image} alt={title} className="w-full h-48 object-cover" />
        <div className="absolute bottom-0 left-0 right-0 p-4 text-white">
          <h2 className="text-xl font-bold mb-2">{title}</h2>
          <p className="text-gray-200">{description}</p>
        </div>
      </div>
    </Tilt>
  );
}

export default Card;

App JSX

最后,让我们看一下App组件。

代码语言:jsx复制
import bg from './assets/bg.png';
import Card from './components/card';

function App() {
  return (
    <div className="w-full h-screen flex justify-center items-center bg-gradient-to-r from-slate-950 to-slate-900">
      <Card image={bg} title="hello world" description="some description" />
    </div>
  );
}

export default App;

通过以上步骤,我们可以在React应用中使用React Tilt为元素添加动感和动画效果,让我们的页面更有趣。 我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

0 人点赞