2011-12-27 4 views
0

어떻게 브라우저를 스크롤하지 않게 할 수 있습니까? 아니면 브라우저를 고정 된 위치로 계속 스크롤 할 수 있습니까?브라우저를 고정 된 위치에 놓은 채로 머물게하는 방법은 무엇입니까?

저는 Nintendo 3DS 브라우저 용 라이브러리를 만들고 있습니다. 페이지를 브라우저 내에서 완벽하게 만들었지 만 아래쪽 화면이 보이는 영역으로 인식되는 유일한 창이기 때문에 위쪽 화살표로 스크롤합니다.

div #bottomScreen이 맨 아래 화면의 유일한 것이므로 스크롤 기능을 사용하지 않도록 설정하면됩니다.

나는

document.body.scrollTop = 220; 

어떻게 내가 계속이 위치로 이동 할 수 있습니다 통해 말했다 위치로 이동하는 방법을 알아 낸?

setTimeout을 사용하여 반복 타이머를 만들고 위의 코드를 입력하면 작동하지 않습니다. 이것은 페이지 로딩 이전에 작동하기 때문입니다.

어떻게 시행해야합니까?

+0

제안 :'setTimeout' 대신'setInterval'을 사용하십시오. –

답변

1

을 필요로하지 않기 때문에 그 효과를 달성하기 위해 본 가장 좋은 방법입니다. 여기에 코드가 있는데, 코드의 의도가 무엇인지 모르겠지만 사용자에게는 짜증이 날 수도 있습니다.

setInterval(function(){ document.body.scrollTop = 200 }, 500); // set your time 
+0

질문을 해결할 것입니다. 이것은 완벽하게 작동합니다! – Tgwizman

1

보다 우아한 해결책은 해당 메서드가 호출 될 때 스크롤을 해제하고 (맨 위 또는 무엇이든간에 220의 위치로 스크롤) 사용자가 적절한 조치를 취할 때마다 다시 사용하도록 설정하는 것입니다. jQuery 예제 :

그렇지 않으면 setInterval()을 10ms와 같이 매우 짧은 간격으로 사용하여 스크롤 기능을 반복적으로 실행하십시오. 이렇게 할 경우 윈도우가 이미 올바른 위치 (+/- 10px 또는 무언가 허용)로 스크롤되어 있는지 확인할 수있는 로직을 추가하는 것이 현명 할 것입니다. 따라서 사용자에게 극도로 싫증이 나지 않습니다.

+0

사실,이 상황에서는 작동하지 않습니다. 나는 – Tgwizman

0

본문 요소에서 숨겨진 오버플로 속성을 설정하는 일부 사이트 (트위터와 같은 것으로 생각하거나 이미지가 팝업 될 때와 같은)에서 본 가장 좋은 방법입니다. 이렇게하면 모든 스크롤을 방지 할 수 있으므로 걱정할 필요가있는 것은 콘텐츠를 만들 때의 위치입니다.

컨테이너 요소의 일종으로 내용을 래핑해야하고 컨테이너 요소의 오버플로를 변경할 때 컨테이너의 y 좌표를보고 페이지의 특정 영역을 나타 내기 위해 설정해야한다고 생각합니다 .

지금까지 내가 그것은 심지어 페이지로드 후 작업을해야 등 타이머

0

스크롤 이벤트에 이벤트 리스너를 추가 한 다음 위치를 설정할 수 있습니다.

관련 문제