Javascript 如果背景颜色相同,则更改滚动条上的徽标颜色

Javascript 如果背景颜色相同,则更改滚动条上的徽标颜色,javascript,jquery,scroll,Javascript,Jquery,Scroll,我的项目(在Wordpress/elementor中)有许多.slide部分,有100vh和100vw。 它还有一个固定的页眉,页面顶部悬停着一个svg#logoken 向下滚动时,id为#logoken的svg徽标必须根据.slide data属性data logo中确定的颜色进行更改 我编写了下面的代码,颜色发生了变化,但只有一秒钟,在向上滚动时,它不起作用。我相信这与我检查滑动位置有关,但我不知道怎么做 jQuery(document).ready(function( $ ) {

我的项目(在Wordpress/elementor中)有许多.slide部分,有100vh和100vw。 它还有一个固定的页眉,页面顶部悬停着一个svg#logoken

向下滚动时,id为#logoken的svg徽标必须根据.slide data属性data logo中确定的颜色进行更改

我编写了下面的代码,颜色发生了变化,但只有一秒钟,在向上滚动时,它不起作用。我相信这与我检查滑动位置有关,但我不知道怎么做

jQuery(document).ready(function( $ ) {

    //Scroll action for logo & menu colors
            
    $( window ).scroll( function(e) {
        $('.slide').each( function(){
            var theSlide = this;
            var top_of_element = $(theSlide).offset().top;
            var bottom_of_element = $(theSlide).offset().top + $(theSlide).outerHeight();
            var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();
            var top_of_screen = $(window).scrollTop();
            
            if( (top_of_element >= top_of_screen) && (top_of_element < (top_of_screen + $(theSlide).height())) ) {
            
                if ( $(theSlide).data('logo') == 'black'){
                    if(!$("#logoken").hasClass("black")){
                        $("#logoken").addClass("black");
                    }
                } 
                else{
                     if($("#logoken").hasClass("black")){
                        $("#logoken").removeClass("black");
                    }
                }
                console.log ($(this).attr('id') +" is on top: and logocolor is" + $(theSlide).data('logo'));
            }
        });
    });
    
    
});
jQuery(文档).ready(函数($){
//图标和菜单颜色的滚动动作
$(窗口)。滚动(功能(e){
$('.slide')。每个(函数(){
var theSlide=这个;
var top\u of_元素=$(theSlide).offset().top;
变量bottom\u of_元素=$(theSlide.offset().top+$(theSlide.outerHeight();
var bottom\u of_screen=$(窗口).scrollTop()+$(窗口).innerHeight();
var top\u of_screen=$(window.scrollTop();
如果((元素的顶部>=屏幕的顶部)&&(元素的顶部<(屏幕的顶部+$(滑块).height())){
if($(theSlide.data('logo')=='black')){
if(!$(“#logoken”).hasClass(“黑色”)){
$(“#logoken”).addClass(“黑色”);
}
} 
否则{
if($(“#logoken”).hasClass(“黑色”)){
$(“#logoken”).removeClass(“黑色”);
}
}
console.log($(this).attr('id')+”位于顶部:logocolor是“+$(theSlide.data('logo'));
}
});
});
});
这是一个临时链接:在这里你可以看到我的代码在运行