Javascript - выполнить несколько разных window.onscroll

Я столкнулся с небольшой проблемой здесь. У меня есть базовые знания о Javascript, и я хочу сделать следующее:

Прямо сейчас, когда вы прокрутите вниз, меню станет меньше. когда вы вернетесь назад, он вернется к нормальному состоянию. Я называю это событие с помощью window.onscroll:

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();

Теперь я хочу, чтобы другая функция имела некоторые эффекты для моих кнопок призыва к действию, давайте вызовем функцию «test», но если я хочу сделать это так же, как и выше, функции эффектов больше не работают:

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

Любая помощь приветствуется! Я думаю, это не будет большой проблемой, но я делаю это неправильно, я думаю. (PS: НЕТ JQUERY ПОЖАЛУЙСТА)

Ответы на вопрос(2)

Ваш ответ на вопрос