【发布时间】:2022-10-25 16:30:55
【问题描述】:
这是我希望通过使用react-scroll-parallax 滚动来实现的预期结果。
在移动浏览器上
描述
我想创建一个具有上述视差效果的网站。关键元素是一个包含三个页面的网站。
从第 1 页滚动到第 2 页时,我希望移动设备模拟在屏幕的一半开始(以避免第 1 页的其他内容),然后移动到基本居中。
从第 2 页滚动到第 3 页时,网站和组件会粘住并再次像正常的网站滚动一样。
此外,在从第 1 页滚动到第 2 页期间,我希望设备模拟内的内容也滚动。
我试过的
对于初学者来说,通过使用设置了 z-index 和绝对位置的 div 以及 -50, 125 的 translateY 上的视差,我几乎可以得到我想要的效果。
<div className={"absolute z-10 w-full"}>
<Parallax translateY={[-50, 125]}></Parallax>
</div>
然而,当我想在 div 中放置内容时,问题就出现了。在视差中设置另一个 div 也设置了 z-index 似乎会影响视差效果。
重要笔记
设备模拟内的内容
我发现一个棘手的问题是试图将内容放在设备模拟中。我希望设备模拟本身和其中的内容都有视差。
我不完全确定应该如何裁剪设备模拟中的内容。 如果您想尝试一下,可以在这里找到设备模拟 svg 框架和设备模拟掩码 Device mock svg and mask
我尝试了具有各种 z 索引的 imgs,使用图像背景用 svg 掩码掩盖 div。没有什么能比得上更理想的结果。
设备模拟的缩放
我想确保这在移动设备和浏览器上都能正常工作。话虽如此,我试图使用边距来缩放设备模拟,但我很难尝试正确地让蒙版适用于模拟中的内容。
我不确定使用专用的宽度和高度尺寸是否是理想的选择,但非常愿意接受建议!似乎很难正确缩放设备框架和蒙版。
设备视差和设备内容视差
我希望设备模拟中的内容是 html,以便我可以更改它而不仅仅是图像。话虽如此,我想要的最重要的功能是让设备和里面的内容都具有视差滚动效果。
概括
我知道这对于一个快速简单的堆栈溢出问题来说有点多,但我一直在努力让它工作,但似乎无法正确确定这些小细节。我真诚地感谢所有帮助和建议,如果还有什么我可以提供的,请告诉我!
【问题讨论】:
-
这是a starter。祝你好运!
-
@tao 我一直在寻找一个开始,这太完美了,谢谢!
标签: css reactjs scroll parallax