【发布时间】:2022-08-19 00:59:13
【问题描述】:
在使用 layoutId 使用 Framer 运动和 Next.js 开发图像页面转换时,我遇到了一个问题。
我的基本目标:
- 主页显示带有 3 张图片的概览
- 单击图像 > 淡出其他图像 > 放大特定图像并转到具有全尺寸图像的页面。
- 单击返回链接 > 缩小大图像 > 淡入其他图像并稍有延迟。
GIF animation of current proejct
图像大小使用
layoutId可以很好地过渡,但是如果我在所有图像(也有一个layoutId)上使用initial、animate和exit定义不透明度过渡,它也会将不透明度值应用于@987654329 @ 过渡。正如你在 gif 中看到的,我的大图也变得透明了????有任何想法吗?非常感谢!
Github 上的代码:https://github.com/sefrijn/next-page-animate
部署在 Netlify 上:https://delicate-monstera-3b89b8.netlify.app/
图片组件代码:
import { motion } from \"framer-motion\"; export default function Image({ id }) { return ( <motion.div layoutId={`wrapper_image_${id}`} transition={{ duration: 0.2 }} initial={{ opacity: 0.2 }} animate={{ opacity: 1 }} exit={{ opacity: 0.2 }} className={\"relative w-full h-full\"} > <motion.img className={\"h-full w-full object-cover\"} src={`/mountain${id}.jpeg`} /> </motion.div> ); }
-
你想什么时候运行不透明动画?
-
不明白你想做什么,但它看起来很棒。
-
@SomeoneSpecial 如果您查看 Netlify 部署,当您在大图像页面上单击“返回”时,我希望大图像保持完全可见,因此不透明度 1。只有小图像应该从透明淡化为完全可见。 ..希望这能让它更清楚。
标签: javascript reactjs next.js framer-motion