-1

我很长一段时间都在看stackoverflowe,现在它发生了 - 必须第一次问一个问题,所以这里是:

我有一个页面,锚菜单粘在浏览器顶部(所以它总是可见的等等),关键是我试图让活动的(这个的可见内容)锚定另一种颜色而不是那些非活动的颜色。

例如,我有一个带有链接(menu1,menu2)和menu1 的内容和menu2 的内容的菜单。当我看到menu1的内容时,链接“menu1”是绿色的,menu2是红色的 当我看到menu2的内容时,链接“menu2”是绿色的,menu1是红色的

我希望它清楚。

我尝试使用 jqueryinview 但我不完全理解它,据我了解这个全局它应该像这样工作:当浏览器看到 classA 然后将 classB 添加到 classC

其中classA是内容,classB是菜单中“活动”锚的样式,classC是菜单中的锚。

我真的很感激一些帮助。

4

2 回答 2

0

这是我一直使用 jQuery 突出显示当前菜单项的完美方式

$(function () {
  var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
  $('[href$="'+url+'"]').parent().addClass("active");
});

准备好 DOM

$( document ).ready(function() {
    $(function () {
      var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
      $('[href$="'+url+'"]').parent().addClass("active");
    });
});
于 2013-09-17T20:00:39.323 回答
0

jQuery inview 是一个很好的解决方案。您需要的是一个 js 代码,它计算内容元素的顶部偏移量与顶部窗口偏移量。如果它是近似的,那么您将活动类添加到相关菜单中。

检查https://github.com/zuk/jquery.inview,我将它与 jQuery 1.10 一起使用,它工作得很好。基本用法是:

$(el).on("inview", function(ev,visible){
        if (visible) 
            something();
    });
于 2013-09-17T20:08:49.030 回答