javascript - Scrollspy 显示页面上我没有使用 jquery 代码的地方

标签 javascript jquery css wordpress

我目前正在尝试使用以下代码将滚动 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/

相关文章:

javascript - 如何显示选定的div并隐藏其他兄弟div?

javascript - 使用输入 jQuery 的 .value() 计算

php - 查询;单击以显示 html 内容和倒计时,然后显示其他内容

html - Bootstrap 的最佳实践是什么?

javascript - CSS 样式不适用于第二个下拉菜单

javascript - 如何使 x 轴刻度线跨越整个条形图?

javascript - php jquery克隆输入字段插入到数据库的同一列中

html - CSS 布局 - 如何放置每个框,尤其是当侧边栏不在容器中时?

css - 如何减少 topnav 下的空白区域?

javascript - 在我的 typescript 文件中正确引用 (javascript) jquery 插件