所以我有这个功能向下滚动到页面底部,并滚动到可滚动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 :(得分: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()
。当您将变量设置为相同的名称时,您将无法在不执行console
的情况下引用该范围内的window.console.log()
,这是一个麻烦的烦恼。