Javascript - führe mehrere verschiedene window.onscroll @ a

Ich stehe hier vor einem kleinen Problem. Ich habe Grundkenntnisse in Javascript und möchte folgendes tun:

Wenn Sie jetzt nach unten scrollen, wird das Menü kleiner. Wenn Sie zurückgehen, wird es wieder normal. Ich rufe dieses Ereignis mit window.onscroll auf:

var diff = 0;
function effects(){
var topDistance = (document.documentElement &&     document.documentElement.scrollTop) ||  document.body.scrollTop;
var clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

if(topDistance > diff){ 
    diff = topDistance;
    if(clientWidth > 1024){
        if(topDistance > 300){
            document.getElementById("header").style.marginTop= "-100px";
        }
    }
}else if(topDistance < diff){
    diff = topDistance;
    if(clientWidth > 1024){
        if(topDistance > 300){
            document.getElementById("header").style.marginTop= "0";
        }
    }
}
}

window.onscroll = effects();

Nun möchte ich, dass eine andere Funktion Auswirkungen auf meinen Aufruf von Aktionsschaltflächen hat. Rufen Sie die Funktion "Test" auf. Wenn ich dies jedoch auf die gleiche Weise wie oben ausführen möchte, funktionieren die Effektfunktionen nicht mehr:

function test(){
//do something
}
window.onscroll = test();

Jede Hilfe ist willkommen! Ich denke, es wird keine große Herausforderung sein, dies zu tun, aber ich mache es falsch, denke ich. (PS: KEINE ABFRAGE BITTE)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage