angular div 滚动条事件_angular操作DOM中的滚动条 自动滚动到底部示例

一般情况下我们angular项目中很少对DOM进行操作的,但偶尔根据需求也会对元素进行操作;下面看看在angular中如何获取DOM元素内容。

38c8a772153345cd5e07e256cdadbec7.png

angular操作DOM中的滚动条

场景:模拟一个聊天窗口,发送信息后,滚动条自动滑动到最底部(如图所示)。

我们就可以借助angular中ElementRef类进行DOM操作。

6cf23cdf258b142ba21b3179dad515f4.gif

angular操作DOM元素 - ElementRef

根据UI设计显示,信息内容布局元素高度是固定的,如果内容溢出,则显示滚动条,自动滑动到底部(也就是最新消息位置)。

具体方法,我们在组件中导入“ElementRef”:

import { Component, OnInit, AfterViewChecked, ElementRef } from '@angular/core';

constructor(

private el: ElementRef,

) {}

接下来我们可以操作DOM中的元素(加入DOM中元素ID为"content"):

...

this.el.nativeElement.querySelector('#content')

这样和js中操作基本一样,即可获取你想要的。

按照本示例,我们还需要用到ngAfterViewChecked(每次做完组件视图和子视图的变更检测之后调用)就是组件生命周期中AfterViewChecked接口中的方法。

选择布局包裹,然后将卷去高度赋等于包裹实际高度即可将滚动条置于最底部,定义此方法分别在ngAfterViewChecked()与ngOnInit()中执行即可实现与上图所示。

scrollToBottom(): void {

try {

this.el.nativeElement.querySelector('#content').scrollTop = this.el.nativeElement.querySelector('#content').scrollHeight;

} catch (err) {}

}

ngAfterViewChecked() {

this.scrollToBottom();

}

ngOnInit() {

this.scrollToBottom();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值