Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从随机部分加载页面时向页眉添加类_Javascript_Jquery_Css - Fatal编程技术网

Javascript 从随机部分加载页面时向页眉添加类

Javascript 从随机部分加载页面时向页眉添加类,javascript,jquery,css,Javascript,Jquery,Css,当页面像这样滚动时,我通过JS向添加了一个类: $(window).scroll(function(){ var top = $(window).scrollTop(); if(top>=1){ $("header").addClass('bg-header'); } else if($("header").hasClass('bg-header')){ $("header").removeCla

当页面像这样滚动时,我通过JS向
添加了一个类:

 $(window).scroll(function(){

    var top = $(window).scrollTop();
    if(top>=1){
        $("header").addClass('bg-header');
    }

    else
        if($("header").hasClass('bg-header')){
            $("header").removeClass('bg-header');
        }
});

问题是,比方说,我从页面的页脚部分(或低于页面顶部的任何其他部分)重新加载,然后页眉会松开类,只有在我向下滚动后才能将其取回。如何使其在重新加载后不会丢失添加的类?

有两种方法:可以在page load/DOM ready上手动触发scroll事件,或者只需将所有逻辑移到scroll事件调用的函数中,并在page load/DOM ready期间调用

解决方案1:在滚动+翻页期间调用自定义功能 解决方案2:手动触发
滚动
事件(不理想)
此解决方案不理想的原因是页面上可能有其他插件/脚本正在侦听
滚动
事件。通过手动触发它,您正在破坏事件的默认行为(因为事件是在没有任何实际滚动的情况下触发的)


您的意思是重新加载
窗口
$(function() {

    // Define custom function that contains all the logic
    var customScrollCallback = function() {
        var top = $(window).scrollTop();
        if (top >= 1) {
            $("header").addClass('bg-header');
        } else if ($("header").hasClass('bg-header')) {
            $
        };
    };

    $(window).scroll(function() {
        // Call custom function during scroll
        customScrollCallback();
    });

    // Call custom function at runtime :) (this is the trick!)
    customScrollCallback();
});
$(function() {
    $(window)
    .scroll(function() {

        var top = $(window).scrollTop();
        if (top >= 1) {
            $("header").addClass('bg-header');
        } else if ($("header").hasClass('bg-header')) {
            $("header").removeClass('bg-header');
        }
    })
    .trigger('scroll');
});