【问题标题】:Remove class on body does not work with pagepiling.js正文上的删除类不适用于 pagepiling.js
【发布时间】:2016-04-27 00:17:00
【问题描述】:

我使用pagepiling.js 创建了一个网站,该脚本在视口中的部分添加了“活动”类。现在我想在我的 section1active 时在我的身体上添加一个类,如下所示:

$(document).ready(function() {
    if ($('#section1').hasClass("active") === true) {
        $('body').toggleClass("one");
    }
});

它运行良好(类已添加到主体上)但是当我滚动我的 section1 时没有类 active 因为我现在在 section2 上,主体上的类不会被删除。我该如何解决?我也试过:

$(document).ready(function() {
    if ($('#section1').hasClass('active')) {
        $('body').addClass('one');
    }
    else {
        $('body').removeClass('one');
    }
});

但它不起作用。

【问题讨论】:

  • 您刚刚否决了我的回答?我能问为什么吗?
  • 无论如何,我想知道你怎么能接受一个甚至不起作用的答案......使用 pagePiling.js 时甚至没有传播滚动事件......而且我'我作为插件的创建者告诉你这个......

标签: javascript jquery pagepiling.js


【解决方案1】:

您必须将您的条件放在滚动事件中,因为您应该在每次用户滚动时检查:

$('body').on('scroll', function() {
    if ( $('#section1').hasClass("active") ){
        $('body').toggleClass("one");
    }
});

希望这会有所帮助。

【讨论】:

  • 这不是这样做的方法.... IT DOESN'T EVEN WORK 因为 pagePiling.js 不会触发滚动事件。您应该使用 pagePiling.js 回调,或者正如我在回答中建议的那样,使用 pagePling.js 为您添加的类。 这绝对不应该是公认的答案。
【解决方案2】:

现在我想在我的 section1 处于活动状态时在我的身体上添加一个类

你实际上不需要。

PagePiling.js 以pp-viewing-page2 的形式为您添加一个类到body 元素。您可以在demo page 的 DOM 检查器中检查它。

但如果你仍然想添加一个类,只需使用插件提供的回调,如下所示:

$('#pagepiling').pagepiling({
    afterLoad: function(anchorLink, index){
        if(index == 1){
            $('body').addClass('one');
        }else{
            $('body').removeClass('one');
        }           
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多