我研究了很多方法来完成任务的不同部分,比如改变滚动条的不透明度或改变滚动条的位置,但仍然不明白如何把它们放在一起。
我需要:
有一个容器,有4个字,在一行.只有1个字是可见的一次,然后另一个字必须出现从右向下滚动,反之亦然,对滚动等每个字.我创建了我想要的视觉例子:
第一步:
用户开始滚动,文本从右侧开始显示(示例显示文本1和文本2,但必须与行中的每个文本相关)
的数据
第二步:
用户继续滚动,text 2位于text 11的位置,而text 1的透明度变小
的
后续步骤:
在最后2张图片中显示,最后text 1随着opacity: 0;
消失,text 2仍在其位置上
上面的示例显示在向下滚动上,但当用户向上滚动时,它应该以相反的方式工作,并且它应该工作,因此当用户滚动文本2并继续滚动时,文本3出现等等
不幸的是我不能分享我尝试的代码,因为我甚至无法想象如何处理这项任务。但我有一些想法,如创建2滑块当前和下一个或类似的东西。
我希望用图像描述足够清晰,因为我甚至不确定我是否理解正确
1条答案
按热度按时间xtupzzrd1#
任意增加
<body>
元素的高度以引入垂直滚动。字符串
为单词创建一个容器。当我们滚动时,使用
position: fixed
将容器保持在屏幕上。添加文本,在容器内彼此顶部。
除了第一个到容器最右边的所有单词。
170px
是一个任意的量,足以将其他两个单词移出屏幕。通过将overflow: hidden
应用于容器,将它们从可见性中删除。的字符串
编写JavaScript,在滚动时更新CSS变量。
使用此CSS变量应用
opacity
并调整.word
元素的transform
属性。此示例将文档按原样滚动的像素数传递给--scroll
。您可能希望处理此值以调整影响CSS的量,或者您也可以调整CSS中的数学运算。这段代码在每滚动
200px
时在单词之间转换。这由我们的--segment-length
值表示。