【发布时间】:2023-04-10 14:54:02
【问题描述】:
我用 React.js 创建了一个轮播,这很简单,直到我遇到了动画问题。轮播是经典的,它由内容“幻灯片”、指示当前幻灯片的小项目符号以及用于在幻灯片之间导航的小缩略图组成。
carousel 组件是数据驱动的,这意味着它的内容作为 javascript 对象数组传递。每张幻灯片都是ul 中的li 标签,只需更改ul 的margin-left css 属性即可从一张幻灯片移动到另一张幻灯片。
我想知道是否应该使用ReactTransitionGroup 或ReactCSSTransitionGroup 来制作从一张幻灯片到另一张幻灯片的过渡动画。基本上,从一张幻灯片到另一张幻灯片时,过渡是从左到右的滑动效果。
我的理解是ReactTransitionGroups API 在添加或删除某些内容时很有帮助。这里我不会添加/删除任何幻灯片,用动画改变可见的。
我的困难在于我开发了一个静态(也就是没有动画)轮播,其中当前显示的幻灯片是组件中保存的唯一状态。这个状态只是幻灯片数组中幻灯片的索引。因此,当我单击缩略图导航幻灯片编号 n 时,我唯一要做的就是更新此内部状态,然后渲染会根据此索引设置 left 样式属性。
我不知道如何为这个轮播添加动画。非常感谢任何帮助/提示。
【问题讨论】:
-
你可以只在左边距使用 CSS3 过渡;唯一棘手的部分是当您走到最后并想要转到索引 0 时。
-
Mmmh...“结束”部分已经在我的代码中处理好了,所以它应该可以解决问题。谢谢!
-
您能否分享您的代码,以便其他人也可以从中受益..
-
它是封闭源代码,用于商业项目。但它可能会因为别的事情而被抛弃。如果是这种情况,我将毫无问题地分享它。敬请期待。
-
那么事情进展如何?还有更多信息吗?
标签: javascript css animation carousel reactjs