现在textarea中通过setSelectionRange选中了异常的文字,但滚动条没有定位到改关键词的位置。
let elem = document.getElementById('#demo');
elem.setSelectionRange(142,144);
elem.focus();
怎么让滚动条自动定位到选中文本的位置?
现在textarea中通过setSelectionRange选中了异常的文字,但滚动条没有定位到改关键词的位置。
let elem = document.getElementById('#demo');
elem.setSelectionRange(142,144);
elem.focus();
怎么让滚动条自动定位到选中文本的位置?
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答849 阅读✓ 已解决
3 回答2.6k 阅读
用Firefox不就行了[狗头]
开玩笑,在Chrome下还真没简单的方法,你只有获取textarea的每行的字符数(textarea元素的cols属性),然后用你根据你setSelectionRange的起始位置来计算在第几行,然后再乘以行高(用textarea元素的clientHeight属性除以rows属性得到行高,不要用style.lineHeight属性),然后用起始位置所在的行数乘以行高得到位置,然后用textarea元素的scrollTop属性设置活动位置。
但是这个方法在中英文混排的时候还有没有用我就不知道了,你自己尝试吧。
参考代码见https://stackoverflow.com/que... 第一个答案。