javascript - 仅在 React 应用程序中使用 jQuery 制作动画

标签 javascript reactjs

所以在花了一些时间使用 React(与 Redux)之后,我注意到除了动画之外,一切都非常好。

当然,React 有 ReactCSSTransitionGroup,但我认为它不够灵活。举个例子,假设我希望我的 Logo 每 5 秒有一个简单的弹跳动画,事实证明这很难做到,因为 ReactCSSTransitionGroup 仅在组件安装和卸载时才会产生动画。

我还遇到过 React Motion 库,它看起来非常酷,但是对于像弹跳 Logo 这样简单的事情,我认为不值得引入这样的库并添加 10 多行代码。

所以我想问那些有 React 经验的人,你对使用 jQuery(再加上 Animate.css)制作动画有什么想法?我知道访问 DOM 很慢,并且 React 不鼓励这样做,因为它也被认为是反模式,但我想知道对于这个用例来说这是否合理?访问真实 DOM 进行动画的“惩罚”会更明显吗?

编辑:上面的例子实际上并不好,因为它只能用CSS来完成,所以让我稍微改变一下。想象一下,每次反弹之间的时间应该是动态触发的,而不是固定的 5 秒。基本上,问题的重点是知道对于“稍微复杂”的动画(CSS3 或 CSSTransitionGroup 无法轻松完成的动画),jQuery 是否是一个很好的解决方案 - 或者如果可能的话,仍然根本不使用 jQuery英寸。

最佳答案

如果是这样简单的事情,就使用 CSS3 动画。您只需将类添加到元素即可,然后忘记它。

@keyframes bounce {
    0%, 70%, 85%, 95%, 100% {transform: translateY(0);}
    80% {transform: translateY(-30px);}
    90% {transform: translateY(-15px);}
}
.bounce {
    animation-name: bounce;
    animation-duration: 3s;
    animation-fill-mode: both;
    animation-iteration-count: infinite;
}
<h1 class="bounce">Logo</h1>

要设置延迟,请调整关键帧并增加动画持续时间。例如,您会注意到,从 0% 到 70% 没有任何反应。

关于javascript - 仅在 React 应用程序中使用 jQuery 制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792231/

相关文章:

javascript - 从 React 中的文件夹加载本地存储图像的正确方法

javascript - 根据返回新数组javascript的另一个数组过滤对象数组

javascript - 当我们实现母版页时,JavaScript 会产生问题吗

javascript - React .map 不是函数

javascript - 表单复选框和单选按钮如何与 React.js 配合使用?

javascript - 为什么点击时 Canvas 框的移动会增加?

reactjs - 带有 Material UI 的 CSS 伪选择器

javascript - 合法更改变量名称后,显示 JS 函数的单选按钮值不起作用

javascript - CakePHP 3.x - 编辑 : Dates having empty fields upon submission despite them already existing

javascript - 将 jQuery 事件添加到单个文本链接