我无法使这个DIV在我添加新行时正确地滚动到底部。它会向下滚动到底部,但最后一行除外,我不知道为什么。我尝试过以下方法:
var objDiv = document.getElementById("gameArea");
objDiv.scrollTop = objDiv.scrollHeight;
并且
var objDiv = document.getElementById("gameArea");
objDiv.scrollTop = objDiv.scrollHeight - objDiv.clientHeight;
我也尝试了scrollIntoView()来滚动到底部输入行的类,但那也没有起作用。
完整函数:
pushText(input : string) {
this.inputs.push(input)
var objDiv = document.getElementById("gameArea");
objDiv.scrollTop = objDiv.scrollHeight - objDiv.clientHeight;
}
HTML如下:
HTML是以下内容:
<div class="mb-3" style="width: 70%; margin:auto;">
<label for="gameArea" class="form-label">Escape!</label>
<div class="form-control" id="gameArea">
<div class="read" *ngFor="let i of this.inputs">{{i}}</div>
</div>
<form [formGroup]="formgroup" (ngSubmit)="update()">
<input class="form-control input" type="text" formControlName="input" [ngStyle]="formgroup.controls.input.invalid && formgroup.controls.input.touched ? {'border': 'red solid 2px'} : {'border':'none'}" required placeholder="Type here, player." aria-label="type here">
<button class="btn btn-primary" [disabled]="formgroup.controls.input.invalid" type="submit">Submit</button>
</form>
</div>
CSS:
#gameArea {
background-color:#fff;
height: 300px;
overflow: scroll;
}