【codeMirror】实时装载日志时使滚动内容固定展示刚刷新的内容

本文介绍了在使用codeMirror实时装载日志时,如何保持滚动条始终展示最新内容的问题。通过设置dom.scrollTop = dom.scrollHeight,解决了每次更新日志后滚动条回到顶部的问题。详细记录了解决过程及遇到的困惑。

大家要是不想看长篇大论,直接看下面的解决方案即可

解决方案:

       每次更新日志的时候都进行dom.scrollTop = dom.scrollHeight赋值操作,来达到时刻展示最新更新日志内容的目标

目录

一、需求阐述

二、遇到问题

三、前期准备

1、从组件入手

2、从dom原生api入手

四、解决路程

(1)取codeMirror相应dom 

(2)找解决问题使用的api

1、用dom.scrollIntoView()【没用】

2、dom.scrollTop = dom.scrollHeight【先没用后有用,迷惑,但推荐】

3、给dom.scrollTop加值【有用,不推荐】


一、需求阐述

       接到一个关于日志展示的需求,要求较多。其中有一点是要求组件中展示的日志,每次更新时一直展示最新更新的内容位置。

       至于为什么要有这个需求,是因为运维不想滚动鼠标滑轮。

  

二、遇到问题

       查看日志的逻辑是,每1.5秒调用后端日志接口,让其将数据返回给前端,然后进行展示。

       但是问题也随之而来。

       第一个【节点日志】,当用户查看日志刚滑到最下面,下次装载就又从头开始展示(这个问题在展示节点日志的时候会出现,但在我之前写的全量日志就不会出现)。

       第二个【全量日志】,这个虽然不会出现每次装载都回到最开始位置,但也不会直接展示日志最新内容。

三、前期准备

1、从组件入手

       codeMirror是一款多功能文本编辑器,但它不同于其他的编辑器如:Braft Editor、UEditor等富文本编辑器,其定位是专门用于编辑代码。

       这个组件是挺成熟的组件,所以我想着看有没有说已经封装好的属性让我用一下。于是就去官网看,看得朦朦胧胧,也没看出来什么头绪。在网上找了个讲得挺详细的组件介绍,大致看了一些options,但是没有找到解决问题的方法。

附上官网地址:https://codemirror.net/index.html

详细介绍地址:<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值