当前位置: 首页 > 知识库问答 >
问题:

在视区中未显示时从元素中移除类

鱼意远
2023-03-14

我正在做一个网站,有固定的辅助导航到右侧的视口。使用waypoint,当特定的id出现在视口底部时,我可以向导航锚点元素添加一个类。但是,我不知道如何做的是,当元素中的元素不再在视口中时,从该元素中移除该类。现在,我的导航将从活动类获得适当的样式,但当我向下滚动页面时,每个导航元素将保持活动类的样式。当元素不再显示在屏幕上时,我需要移除活动类。谢谢你的帮助。

jQuery:

$("#logo").waypoint(function(){
    $("#logo-nav").addClass('active');
});

$("#design").waypoint(function(){
    $("#design-nav").addClass('active');
});

$("#outdoor").waypoint(function(){
    $("#outdoor-nav").addClass('active');
});

$("#online").waypoint(function(){
    $("#online-nav").addClass('active');
});

$("#photo").waypoint(function(){
    $("#photo-nav").addClass('active');
});

$("#video").waypoint(function(){
    $("#video-nav").addClass('active');
});

实时html页面:

http://dai1.designangler.com/work

共有2个答案

林昱
2023-03-14

当到达一个路径点时,您只需从所有导航链接中删除active类,然后将其添加到当前活动的路径点。

var setActive = function(id) {
    $(".nav > a").removeClass('active');
    $(id).addClass('active');
}

$("#logo").waypoint(function(){
    setActive("#logo-nav");
});
// ...
蒋茂材
2023-03-14

在每个AddClass()之前添加此行:

$('.active').removeClass('active');

如果您为waypoint元素提供了一个公共类,那么您可以将上面的所有代码替换为:

$(".waypoint-element").waypoint(function(){
    $('.active').removeClass('active');
    $('#' + this.id + '-nav').addClass('active');
});
 类似资料:
  • 我试图从ArrayList中删除所有奇数元素,然后返回该ArrayList。 我在第一行发现一个指向列表整数的错误 测试: 结果:

  • 我正在用随机整数填充ArrayList。然后,当我试图删除它们时,我得到了以下错误: 线程“main”java.lang.indexoutOfboundsException:在java.base/jdk.internal.util.preconditions.outofbounds(preconditions.java:64)在java.base/jdk.internal.util.precond

  • 问题内容: 我正在尝试用Java中的TextViews创建LinearLayout,因为元素的数量是动态指定的,所以使用XML对我来说不可行。这是我的代码的一些示例: 当我启动此活动时,它不会显示此TextView,但也不会显示错误。有人有建议吗? 问题答案: 试试这个,

  • 问题内容: 我有这个arraylist: 如何构造语句,以便每500帧删除arraylist 中的最后一个元素?是否需要某种循环? 问题答案: 如果您已经有了一个变量,可以跟踪您所处的帧,则可以使用以下if语句: 由于您将其用作ArrayList的remove方法的参数,因此我也这样做了,但请注意,由于arrayList索引从0开始计数,因此它将始终删除arrayList中的第二个对象。 仅在帧数

  • 问题内容: 当显示其父元素时,是否有任何机制可显示子元素:无? 这种情况是隐藏选项卡上的验证错误。我想显示错误消息,即使该字段是隐藏的。 标记: CSS: 我猜这是不可能的,因为孩子没有上下文,但以防万一? 问题答案: 不,这是不可能的。隐藏该元素,因此不会显示任何子元素。 编辑: 这可能是沿着你想要的线,如果你能够从使用切换到。 使用此方法,您可以隐藏父元素的内容,但显示所需的特定内容。唯一需要

  • 我有一个名为arr的数组,大小为1024。所以基本上我想删除数组的第1X个元素。我该怎么做?我是这么想的:创建一个指针,指向数组的第一个值(ARR[0])。执行指针算术将其带到数组的第X个元素。然后将arr[0]设置为指针p,这将有效地移除前X个元素?这样行吗?或者有没有更简单的方法来移除数组的前X个元素?