textarea滚动条定位到光标选择位置

现在textarea中通过setSelectionRange选中了异常的文字,但滚动条没有定位到改关键词的位置。

let elem = document.getElementById('#demo');
elem.setSelectionRange(142,144);
elem.focus();

clipboard.png

怎么让滚动条自动定位到选中文本的位置?

clipboard.png

阅读 6.5k
1 个回答

用Firefox不就行了[狗头]

开玩笑,在Chrome下还真没简单的方法,你只有获取textarea的每行的字符数(textarea元素的cols属性),然后用你根据你setSelectionRange的起始位置来计算在第几行,然后再乘以行高(用textarea元素的clientHeight属性除以rows属性得到行高,不要用style.lineHeight属性),然后用起始位置所在的行数乘以行高得到位置,然后用textarea元素的scrollTop属性设置活动位置。

但是这个方法在中英文混排的时候还有没有用我就不知道了,你自己尝试吧。

参考代码见https://stackoverflow.com/que... 第一个答案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题