滚动TextArea中内容到底部的BT方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
记得很久以前玩聊天室的时候,新的聊天内容被显示出来后,滚动条总是会滚动到聊天内容窗口的底部。不过那种聊天窗口一般都是使用frame/iframe制作的,我们可以使用其document对象的scrollTop属性来滚动窗口。如果使用TextArea来记录递增内容,怎么达到同样的效果呢?

    今天下午一个同事说他的监控日志窗口是使用TextArea来做的,因为日志内容很多,也只有TextArea能保证效率。同时页面脚本还在后台以6Hz的频率在获取新的日志。他希望新的日志append到TextArea里后,TextArea内的内容能滚动到底部,就像我先前说的聊天室的内容显示那样,便于用户察看新增加的日志。当时我主观的想,TextArea可能没有控制滚动条的属性吧,于是查阅了一下MSDN中TextArea方法说明的那部分,发现它有scrollIntoView这个方法,于是很高兴 。可是使用后,发现毫无效果 。这更加使我认为TextArea不能控制其内容的滚动,于是郁闷了一会儿,想出了一个诡异的方法来解决了这个问题,演示如下:
 
   

 

    效果很简单是吧,可是看看代码,是不是真的很是BT呀。代码如下:

< script  language ="javascript" >
var  count  =   20 ;
function  Scroll()
{
    
var  txb  =  document.getElementById('txb');
    txb.value 
=  txb.value  +  '\r\nline '  +  ( ++ count);
    
var  psnObject  =  txb.Span;
    
if  (  ! psnObject )
    
{
        psnObject 
=  document.createElement('SPAN');
        txb.Span 
=  psnObject;
    }

    txb.appendChild(psnObject);
    psnObject.scrollIntoView();
}

</ script >

    由于scrollIntoView方法是滚动控件本身,所以我就添加一个span元素到TextArea底部并让其滚动,效果就达到了 。晚上回来觉得这个实现简直太别扭了,所以又仔细查了查MSDN关于TextArea的部分,结果发现TextArea元素居然有 scrollTop等一系列scroll相关属性!

    于是立即晕了个半死 yun.gif yun.gif yun.gif

    回头再想一下,为什么我一开始不去仔细的查看TextArea的属性呢?因为我觉得既然别人来问我,可能人家已经研究过了,可能实现起来确实有困难。所以在这种想法占主导地位的时候,很容易让自己从另类的角度解决问题,就是使用一些不寻常的方法。上次安装Whidbey的Beta2也是出于了同样的心理,结果使自己搞得很是麻烦。不过这也正好又再次提醒自己,以后解决任何问题,一定要从最基本的解决方案着手,从简到繁,做到事半功倍。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
小程序 容器
小程序图片水平垂直居中显示在view中
小程序图片水平垂直居中显示在view中
111 0
textarea文本框默认显示文本鼠标点击时清空
textarea文本框默认显示文本鼠标点击时清空
|
Web App开发 JavaScript 程序员
如何去掉或者修改网页中的遮罩层,DIV等元素?
起因: 前几天女友在查资料写文章,打开一个网页,发现网页的被一个半透明的遮罩层给覆盖了(一个已经过期的组织活动 的网页,H5就将它遮盖了),就来问我怎么弄。
1710 0
|
6月前
element-plus:el-Dialog对话框组件垂直居中、禁止屏幕滚动、使用内滚动
element-plus:el-Dialog对话框组件垂直居中、禁止屏幕滚动、使用内滚动
|
JavaScript
js监听页面或元素scroll事件,滚动到底部或顶部
js监听页面或元素scroll事件,滚动到底部或顶部
1251 0
js监听页面或元素scroll事件,滚动到底部或顶部
layui列表页滚动时弹出窗无法居中的解决方案
layui列表页滚动时弹出窗无法居中的解决方案
124 0
|
JavaScript 前端开发
css:隐藏input file标签并触发点击上传文件事件
css:隐藏input file标签并触发点击上传文件事件
595 0
css:隐藏input file标签并触发点击上传文件事件
|
API
scroll-view回到顶部功能的实现
在我最近写的一个项目中就有这样的一个需求,即无限滚动卡片列表中实现回到顶部,与已往的返回顶部功能不同,因为是通过scroll-view来实现的无限列表滚动,所以返沪顶部需要依靠scroll-view的一些特定属性和api,下面我将带大家分析,实现这个功能。
534 1
scroll-view回到顶部功能的实现
|
开发工具
Word中的滚动文本框是如何制作(可以)
Word中的滚动文本框是如何制作(可以)
133 0