I'm attempting to create a terminal/console on my website. I found the functions for scrolling down on a page using javascript, which are window.scrollTo(0,document.body.scrollHeight);
and window.scrollTo(0,document.querySelector(".fakeScreen").scrollHeight)
. However, I can make neither of them work. I put them on different places; at the bottom of my writeText
function and at each of my functions, however none worked.
Attempt one (writeText function):
function writeText(data) {
output.innerHTML = `${data}<br>`;
window.scrollTo(0,document.body.scrollHeight);
}
Attempt two (at each of my functions):
function whoami() {
writeText(`
<br>
hi! i'm gxzs, bla bla bla..
<br>`)
window.scrollTo(0,document.body.scrollHeight);
}
Css (terminal, scrollbar)
.terminalScreen {
background-color: #282828;
opacity: 90%;
box-sizing: border-box;
position: relative;
width: 100%;
height: 100%;
overflow-y: scroll;
width: 1500px;
height: 800px;
margin: 0 auto;
padding: 20px;
vertical-align: center;
}
.terminalScreen::-webkit-scrollbar {
width: 12px;
}
.terminalScreen::-webkit-scrollbar-track {
background: #282828;
}
.terminalScreen::-webkit-scrollbar-thumb {
background-color: #141414;
border-radius: 15px;
border: 3px solid #282828;
}
.terminalScreen .output {
width: 100%;
color: #fff;
font-size: 14pt;
font-family: 'Roboto Mono', monospace;
}
CodePudding user response:
The window
object you are targeting is the window
object exposed by the browser and not the terminal window.
To scroll the terminal scrollbar you need to target the element with the scrollbar inside the terminal. Like this:
document.querySelector(".terminalScreen").scrollTo(0, document.body.scrollHeight)