2017-09-05 1 views
0

그래서 나는 페이지 하단으로 스크롤이 기능을 가지고 있고, 스크롤 DIV #log의 바닥 :자바 스크립트 - 사업부의 하단으로 스크롤 - 중단없이 아래로 스크롤에 유지

function gotoConsole() { 
    var console = document.getElementById('log'); 

    window.scrollTo(0,document.body.scrollHeight); 
    window.setInterval(function() { 
     console.scrollTop = console.scrollHeight; 
    }, 250); 
} 

그것을 작업을 수행하면 페이지로 스크롤하고 div의 맨 아래로 스크롤합니다. 그러나 문제는이다. div는 계속 내려 가고, 나는 위로 스크롤 할 수 없다.

gotoConsole() 함수는 사용자가 버튼을 클릭 한 후에 한 번만 호출됩니다.

이 기능의 문제점은 무엇입니까? 나는 이것을 위해 jQuery를 사용할 수 없다.

+0

스크롤링이 끝난 후 어딘가에 'clearInterval'을 사용해야합니다. – MysterX

+0

''setInterval'''을 사용했습니다. –

+3

변수 이름'console'을 보면 모니터에서 소리를 지르고 싶습니다. – Santi

답변

0

나는 당신이 오해 한 것 같아요. setInterval. setInterval()clearInterval을 사용하여 특별히 지우지 않는 한 을 무한으로 번 반복합니다.

나는 당신이 이후 setTimeout있어 믿을 - 오히려 반복보다, 그것은 단지 번 실행하지만 그것은 매우 유사 setInterval로 작동합니다.

function gotoConsole() { var myConsole = document.getElementById('log'); window.scrollTo(0,document.body.scrollHeight); window.setTimeout(function() { myConsole.scrollTop = myConsole.scrollHeight; }, 250); } 

사이드 참고

: console에 변수를 설정

주요 붉은 깃발입니다.

JavaScript를 작성/디버깅 할 때 가장 친한 친구는 매우 자주 console.log()이 될 것입니다. 변수를 같은 이름으로 설정하면 window.console.log()을 수행하지 않고 해당 범위 내에서 console을 참조 할 수있는 기능이 손실됩니다. 이는 번거로운 성가심입니다.

관련 문제