我目前正在尝试使用以下代码将滚动 spy 添加到我的 WordPress 单页布局,但是当我向下滚动页面时没有任何反应。
代码唯一要做的就是删除事件类。
(function( $ ){
$("nav ul li a").addClass("marker");
var navLinks = $('nav ul li a'),
navH = $('nav').height(),
section = $('section'),
documentEl = $(document);
documentEl.on('scroll', function() {
var currentScrollPos = documentEl.scrollTop();
section.each(function() {
var self = $(this);
if (self.offset().top < (currentScrollPos + navH ) && (currentScrollPos + navH) < (self.offset().top + self.outerHeight())) {
var targetClass = '.' +self.attr('class') + 'marker';
navLinks.removeClass('active');
$(targetClass).addClass('active');
}
});
});
})(jQuery);
我只是为事件类添加了深色背景,以便在我向下滚动每个部分时看到菜单项改变颜色。
.active{
background-color:#000;
}
如何正确应用 scroll spy?
最佳答案
尝试用 dom ready 语句包装你的 js
jQuery(function(){
$("nav ul li a").addClass("marker");
var navLinks = $('nav ul li a'),
navH = $('nav').height(),
section = $('section'),
documentEl = $(document);
documentEl.on('scroll', function() {
var currentScrollPos = documentEl.scrollTop();
section.each(function() {
var self = $(this);
if (self.offset().top < (currentScrollPos + navH ) && (currentScrollPos + navH) < (self.offset().top + self.outerHeight())) {
var targetClass = '.' +self.attr('class') + 'marker';
navLinks.removeClass('active');
$(targetClass).addClass('active');
}
});
});
});
关于javascript - Scrollspy 显示页面上我没有使用 jquery 代码的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39073823/