我正在使用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/