仅定位主页

时间:2016-11-15 06:30:48

标签: javascript php html wordpress

我有以下代码,它以我的导航为目标(根据窗口位置添加特定的类。使用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');

继续添加到所有内部页面(除主页之外的所有页面)我希望我可以修改代码而不是创建一个单独的header.php。

1 个答案:

答案 0 :(得分: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以及它与其他网页的不同之处。

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

您还可以使用页面路径:

// 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');
}