我正在使用stickyJS在我的wordpress网站上创建一个粘性标头。我已经正确地将脚本排入队列,并且粘性工作正常。

我要实现的目标是不断检查为粘性设置的nav元素是否具有一个名为“ is-sticky”的类,如果是,则更改一些CSS。

这是我已经拥有的代码:

function stickyInit($)
{
$("#site-navigation").sticky({topSpacing:0});

window.setInterval(check_sticky,500);

function check_sticky(){
    if($("#site-navigation-sticky-wrapper").hasClass("is-sticky")){
        console.log ("Do Something");
    }
}
}

jQuery(document).ready(function ($) {
stickyInit($);
});


这是我将队列设置为粘性的文件中排队的所有代码。

如您所见,我已经使用setInterval尝试创建一个循环以不断测试“#site-navigation-sticky-wrapper”元素,以查看其是否具有上述类。

这段代码有效,我在firebug控制台中收到了消息,但我只收到一次,而不是反复收到。

所以我的问题是,如何不断测试此元素以查看其是否具有“ is-sticky”类,以便在出现该问题时可以交替使用nav css?

另外,当元素上未设置“ is-sticky”类时(在我滚动回顶部之后),如何将导航设置回其原始位置?还是无论如何都会这样做?

最佳答案

选中this fiddle-在“ is-sticky”类处于活动状态时反复触发,并且当您滚动到停止位置时导航位置会自动恢复到以前的状态。

// Your code
function stickyInit($){

    $("#site-navigation").sticky({topSpacing:0});

        function check_sticky(){
            if ( $("#site-navigation-sticky-wrapper").hasClass("is-sticky") ) {
                console.log ("Do Something");
            }
        }

    window.setInterval(check_sticky,500);
}

jQuery(document).ready(function ($) {

    stickyInit($);

});

关于jquery - 使用jQuery检查元素是否一直有类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23255190/

10-14 19:24