【发布时间】:2014-01-03 23:27:58
【问题描述】:
我继承了一个项目,并且对如何解决特定问题有一些疑问。
有一个固定的左侧子导航,如下所示。当用户滚动时,有 6-10 个不同的“部分”垂直堆叠。顶部有一个背景图像(见下文),而其余部分在白色和各种颜色之间交替,例如:
section 1: background-image
section 2: background-color: white
section 3: background-color: blue
section 4: background-color: white
section 5: background-color: green
... etc
客户希望菜单项根据每个项目在给定时间所处的背景更改颜色(因此当您滚动时,它会逐项更改)。正如您在图像中看到的,当我从标题滚动到第一个内容部分时,我正在移动到白色背景,所以我的菜单是白色背景上的白色文本(第 5 个菜单项正在移动到白色背景)。
从事此工作的人最初使用 jquery waypoint 在特定 div 滚动到某个位置时触发对菜单项颜色的大规模更改。这基本上有效 - 但只有当整个部分滚动到菜单顶部时(意味着菜单项是白底白字,直到最后一个菜单项滚动到该部分)。
关于如何处理这个问题有什么想法吗?
[编辑添加]
我想我在上面已经说得很清楚了。我们已经在使用 jquery 航点。问题是,航点不能在每个菜单项上触发(主要是因为菜单项不是内容节点的祖先树的一部分,这禁止我将上下文传递给航点处理程序),除非我为每个菜单项的每个偏移处的部分 div(每个页面都不同)。这将导致大量航点处理程序被绑定,我认为这并不理想。
Here is an example 我所描述的。当您滚动时,菜单项会同时更改。当您从标题向下滚动到第一个内容部分时,您可以看到问题出在哪里。菜单项是白色的。第一个内容部分的背景也是如此。因此,在到达航点之前,菜单实际上是隐藏的。我要做的是在每个菜单项“进入”或“退出”特定内容 div 时更改它的颜色。我想我可以在 window.scroll 上做到这一点,但这似乎相当昂贵。希望我在航路点上缺少一些东西,或者有更好的方法来做到这一点。
【问题讨论】:
-
参见imakewebthings.com/jquery-waypoints/#get-started 在每个元素上设置
$.waypoint()函数,然后根据该元素的位置添加/删除类。这些类应该有改变背景颜色的 CSS。如果您发布更多有用的代码。 -
如果您阅读我的帖子,您会发现他们已经为此使用了航点。问题不在于如何使用航点。 Waypoints 不符合我的要求
-
我建议然后发布一些代码。很难理解你想要完成什么,而且我不是唯一一个在这里感到困惑的人。
-
是的,我现在正在制作小提琴。
标签: css css-position jquery-waypoints