reactjs - Framer 运动退出动画也在映射的反应 div 元素上播放
问题描述
我是 Framer Motion 的新手,我无法解决这个问题。我正在使用 React,并且我有一个 .map() 通过的对象数组。对于每个对象,它将创建一个 div。
这是我的问题:我把这个 div 做成了一个 motion.div 并添加了一个退出动画。但是当我点击一个元素时,所有其他元素也会播放退出动画。我怎样才能防止这种情况发生?我只想要点击播放退出动画的 div,而不是其他 div。
顺便说一句:悬停动画确实可以单独工作。例如 whileHover={{scale: 1.03}}
代码的小例子:
{marvelMovies.map((movie, index) =>
<motion.div exit={{opacity: 0}} transition={transition} className="movie" key={index}>
</motion.div>
)}
解决方案
您是否将 div 包装在Animate Presence中
<AnimatePresence>
{marvelMovies.map((movie, index) =>
<motion.div exit={{opacity: 0}} transition={transition} className="movie" key={index} />)}
</AnimatePresence>
我用一个工作示例制作了一个代码沙箱: https ://codesandbox.io/s/framer-motion-multiple-item-animation-presence-sdmq2
推荐阅读
- angularjs - 角度服务示例不起作用
- spring-boot - 无法获取 Jedis 连接,嵌套异常:无法从池中获取资源
- r - 重新排序由 R 中的字符列组成的数据框
- amazon-s3 - AWS S3 CLI:调用 PutObject 操作时发生错误 (AllAccessDisabled):已禁用对此对象的所有访问
- linux - Linux 在匹配模式前后添加新行
- selenium - 如何实现 //*[contains(text(), '"example"')] 为 Selenium Webdriver: 的动态内容构造 Xpath:?
- excel - 动态表过滤给出错误 1004
- sql - 嵌套相交
- sql - DB2 SQL 中的可重新部署脚本。仅插入一行 如果一行不存在
- php - 尝试返回自定义 404 页面 Laravel