【问题标题】:Changing styles on navigation links - including next and prev buttons更改导航链接的样式 - 包括下一个和上一个按钮
【发布时间】:2009-08-17 15:31:50
【问题描述】:

我目前正在为一家丹麦公司开发一个网站。内容都在一页中,我已经包含了一些 jQuery 滚动和东西。效果不错!

对于菜单,我被要求对元素进行编程,使活动元素为粗体。我也做过。

问题来了:
客户想要一个主页按钮和一个下一个和上一个按钮。但是当我单击它们并且页面滚动时,活动元素的 CSS 类不会改变 - 所以菜单中的粗体元素仍然是最后点击的页面。

我希望任何人都可以提供帮助。

该页面可以在以下位置看到: http://vedelform.dk/new/intro/

【问题讨论】:

  • 您能否展示相关的 jQuery 代码,以便将事件处理程序绑定到滚动箭头?
  • @Russ:代码在这里:vedelform.dk/new/wp-content/themes/vedelform/js/init.js 事件处理程序绑定在 SerialScroll 插件的深处。
  • @crescentfresh - 我开始查看代码并认为可能更容易让所有人询问他们的绑定位置:)

标签: javascript css navigation


【解决方案1】:

除了调用 serialscroll 插件之外,图像的事件处理程序还需要更新导航链接上的适当类名。当您直接单击导航链接时,您会调用 changeActiveStates 函数,但是对于 home、next 和 previous 按钮不会发生这种情况。

您应该使用 serialScroll 插件的 onBefore 属性来定义一个方法,该方法将确定哪个导航链接应该接收类名。然后它可以调用 changeActiveStates 函数。

看起来只需要多几行代码就可以解决您的问题。如果您需要更多帮助以使其正常工作,请告诉我。


编辑:

如果你添加这个(从 init.js 的第 84 行开始),你应该在做生意:

easing: 'swing',
onBefore:function(e, elem, $pane, $items, pos){
    if ((pos >= 0)&&(pos < $('ul.navigation > li > a').size())) changeActiveStates($('ul.navigation > li > a').get(pos));
    return true;
}

然后您需要在页面加载时调用 changeActiveStates(可能在您初始化函数之后)以初始化正确的菜单项。

希望对您有所帮助;让我知道这是否会给您带来更多麻烦。

【讨论】:

  • 您愿意帮助我编写脚本吗?
  • 好的,我今晚再看一遍。
【解决方案2】:

您使用了缩小版的脚本,因此很难调试代码。你也没有给我们你使用的插件的名称。我认为插件中存在错误。因为 css 类“选定”会从一个菜单项跳转到另一个菜单项。

【讨论】:

【解决方案3】:

@杰森弗朗西斯: 你也许是对的。我对 jQuery 和 Javascript 不太感兴趣,到目前为止我所做的更多的是运气而不是知识。我做了很多试验和错误。
我理解你所说的关于让 serialScroll 插件找出调用 changeActiveStates 的元素的意思 - 但我真的不知道该怎么做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2013-02-09
    相关资源
    最近更新 更多