2014-10-21 3 views
0

저는 항상 하나의 절대 div가 수평 스크롤 위치와 인라인되도록 정렬하는 데 사용하는 javascript 파일이 있습니다.onscroll은 한 번만 발생합니다.

내 코드에서 작동하지 않는 것을 알아낼 수 없습니다. onscroll은 한 번 실행 된 다음 인터넷 익스플로러와 파이어 폭스에서 다시 실행되지 않습니다.

누구든지 아이디어가 있습니까? 나는 조금 이것을 찾고 있었는데 나는 오류를 알아낼 수 없다. (나는 onscroll + =와 onscroll =, 둘 다 시도하지 않았다). 39 번 오프셋은 스크립트가 작동 할 때까지 스크립트가 실행되는지 확인하는 것입니다.

window.onload=scrollSet; 
 

 
function scrollSet(){ 
 
\t window.onscroll += KeepLeftAtScroll(); 
 
} 
 

 

 
function KeepLeftAtScroll(){ 
 
\t var ele=document.getElementById("topAboveMenuMargin"); 
 
\t if (ele != null){ 
 
\t \t ele.style.left = 39+ document.documentElement.scrollLeft; 
 
\t } 
 
\t \t 
 
}

+0

왜 네이티브'window.onscroll'을 재정의합니까? 'KeepLeftAtScroll'은 아무 것도 반환하지 않습니다. – Teemu

+0

저는 창을 스크롤 할 때마다 div를 다시 배치하는 코드를 실행하는 데이 도구를 사용하고 있습니다. – Charles

+0

아니요, 당신은'window.onscroll'을'NaN'으로 오버라이드하고 있습니다.). 'onscroll'은 함수입니다. 아마도'window.onscroll = KeepLeftAtScroll;'당신이 원하는 것을 할 것입니다. – Teemu

답변

0

이 문제를 해결했습니다. 분명히 자바 스크립트

window.onscroll = function KeepLeftAtScroll(){ 
 
\t var ele=document.getElementById("topAboveMenuMargin"); 
 
\t if (ele != null) 
 
\t { 
 
\t \t ele.style.left = window.pageXOffset; 
 
\t } 
 
}

작품으로, assignement 및 선언을 오토넷 좋아하고 내가가 원하는 것을하지 않습니다. 그것은 "window.onscroll = KLAS()"을 좋아하지 않는 것처럼 보였지만 "window.onscroll = function KLAS() {}"로 괜찮 았습니다. 원래 엘리먼트에서 null을 확인하지 않았기 때문에 원래 onload 부분을 수행하고 그 문제를 해결하기 위해 그렇게했습니다.

어느 쪽이든, 그것은 해결 된 것 같습니다. 모든 도움을 주셔서 감사합니다.

+0

흠 ... 문제를 해결합니다. 'window.onscroll = KeepLeftAtScroll;'도 작업을 완료했을 것입니다. 함수 호출과 함수 참조의 차이점을 알고 있습니까? – Teemu

+0

예. 그날 저녁, 그리고 어떤 이유로 window.onscroll = KLAT; 내가 선언과 과제를 결합 할 때까지 작동하지 않았다. 나는 최대 무엇인지 모르겠지만, 나는 다시 이 를 확인하려고 "window.onscroll = KeepLeftAtSroll; 기능 KeepLeftAtScroll() {-code- }" 이 실패합니다. – Charles

관련 문제