2016-11-15 70 views
0

我有一个基于窗口的位置下面的代码针对我的导航(添加特定类。使用WordPress。仅针对主页

JS

jQuery(document).ready(function($){ 
    $(window).scroll(function() { 
    var scroll = $(window).scrollTop(); 
    if (scroll >= 250) { 
    $("#s-nav").addClass('s-nav-w'); 
    $(".main-nav li a").addClass('text-w'); 
    } else{ 
    $("#s-nav").removeClass('s-nav-w'); 
    $(".main-nav li a").removeClass('text-w'); 
    } 
}); 
}); 

我想使用所有相同的导航我的网页,但我想

$("#s-nav").addClass('s-nav-w'); 
$(".main-nav li a").addClass('text-w'); 

留在所有的内部网页addded(除了主页的所有页面),我希望我可以修改代码,而不是创建一个单独的header.php。

回答

2

执行此操作的一种典型方法是检测仅位于主页上的一些对象,并使用if根据缺少仅存在于主页上的某些内容来有条件地执行代码。你不告诉我们您的实际HTML,所以我会说明这个概念:

认为你有这个div,只有在你的主页上显示:

<div id="homepage">...</div> 

然后,你可以在你的jQuery的使用:

// execute some jQuery on all pages except the home page 
if (!$("#homepage").length) { 
    $("#s-nav").addClass('s-nav-w'); 
    $(".main-nav li a").addClass('text-w'); 
} 

当然,你也可以检测到所有不是主页的页面并且反转逻辑。要么会工作得很好。

如果您需要关于如何完成主页检测的帮助,那么我们必须了解关于您的HTML主页的更多信息,以及它与其他页面的不同之处。

由于与其他页面相比,主页的内容始终是唯一的,因此在该页面中几乎总是可以识别的唯一内容。或者,如果您将网页的内容与其他网页分开控制,则只需添加一个空格即可作为识别主页的标记。


您还可以使用页面的路径:

// execute some jQuery on all pages except the top level page 
// if your home page is some other path than "/", then substitute the appropriate path 
if (window.location.pathname !== "/") { 
    $("#s-nav").addClass('s-nav-w'); 
    $(".main-nav li a").addClass('text-w'); 
} 
+0

好吧,我明白了。我在所有页面上使用相同的导航代码。相同的功能等。我在我的所有页面上使用相同的header.php,因此内部页面具有相同的“容器” – user3550879

+0

@ user3550879 - 那么我在答案中添加的路径建议如何?如果您想获得更具体的帮助,您必须发布一个链接到主页,以便我们帮助您确定首页中的独特内容以进行测试。它显然不能与其他网页的内容相同。 – jfriend00

+0

右对。我正在寻找不同的方式。我认为你的主页的想法是一个好方法,问题是试图找出如何“独特”我的网页 – user3550879