我正在使用stickyJS在我的wordpress网站上创建一个粘性标题。我已经正确地排列了脚本,并且粘性工作正常。
我想要实现的是不断检查我为sticky设置的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控制台中收到消息,但我只得到一次而不是重复。
所以我的问题是,我如何不断测试这个元素,看看它是否具有“粘性”类,所以我可以替换nav css吗?
此外,当元素“is-sticky”未设置在元素上时(在我滚动回到顶部之后),如何将导航设置回原始位置?或者它会这样做吗?
答案 0 :(得分:3)
检查this fiddle - 当“粘性”时,它会反复触发。上课是活跃的滚动到停止时,导航位置会自动恢复到以前的状态。
// 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($);
});