여기에 약간의 문제가 있습니다. 나는 자바에 대한 기본적인 지식을 가지고 있으며 다음과 같이하고 싶다.자바 스크립트 - 여러 개의 다른 window.onscroll을 실행하십시오.
지금, 아래로 스크롤하면 메뉴가 작아진다. 다시 올라 가면 정상으로 돌아갑니다. 나는 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();
가 지금은 또 다른 기능은 동작 버튼에 내 전화에 어떤 효과를 갖고 싶어
, 기능 "테스트"를 호출 할 수 있습니다,하지만 난이 같은 방법으로 수행하려는 경우 위와 같이 효과 함수가 더 이상 작동하지 않습니다.function test(){
//do something
}
window.onscroll = test();
아무 도움이 없습니다. 나는 그것을하기 위해 큰 도전이되지 않을 tihnk,하지만 내가 잘못하고있는 것 같아요. (PS : 제발 JQUERY NO)
그래서 당신은 스크롤에 두 가지 기능을 호출 할 우선하지 않습니다? 그러나 당신은 또한'effects' 스타일의 헤더와'test' 스타일의 버튼을 원하지만 둘 다 같은 스크롤/오프셋 높이 검사를 원하십니까? – nem035
제쳐두고, onscroll 기능도 디 바운싱하는 것이 좋습니다. https://davidwalsh.name/javascript-debounce-function –