导航栏向下缩回,并根据滚动值

时间:2016-04-07 16:03:13

标签: javascript jquery scroll jquery-waypoints scrollmagic

我有一个110px高的导航栏,绝对定位。最多80像素设置为position:absolute;,80px后变为position:fixed; transform: translate(-80px, 0);。因此技术上在80px的滚动量之后部分地固定(底部的30个剩余像素)。 (jsfiddle

我希望再次在页面的任何位置向上滚动导航栏,而不仅仅是当它位于页面顶部时。当你再次向下滚动时,它会以同样的方式消失。我知道如何通过jquery waypointsif (direction === 'down')通过transform: translate(-80px, 0);触发transform: translate(-80px, 0);如果滚动起来则使其适应,如果滚动停止则再次消失(使用css3)转换)。

我真正想做的是让它与滚动的实际像素数相关联。因此,如果我向下滚动(让我们说半页),然后我向上滚动10个像素,导航栏将增加10个像素。如果我再向上滚动20像素,那么导航栏上会再多20像素。直到整个栏出现。然后向上滚动不会发生任何事情,因为栏出现了。如果我向下滚动5个像素,减少5个像素,等等。

我想做的事情在本网站的标题上有:EXAMPLE (www.oma.eu)

我一直在浏览Scrollmagic(插件),因为基本上我可以设置一个场景(transform: translate并提供80像素的持续时间。唯一的问题是我需要一个TriggerElement,但场景需要在有滚动的任何时候应用,而不是在特定时刻。

关于我如何在逻辑上做到这一点的任何见解? OMA的网站功能对我来说非常模糊......

这就是他们的javascript似乎:

a)检测滚动方向何时发生变化。

b)检测到变化后,获取值(x)实时滚动,最高可达80px。

c)从导航栏中注入args这个值,最多80px。

d)如果滚动小于80px并改变滚动方向,则取新的最后一个值(y)并从中减去(x)。

有可能,是否有一种简单的方法可以达到这种效果?

0 个答案:

没有答案