问题描述:
- 背景
我用的wangEditor富文本,富文本高度是根据输入内容高度自适应的,当输入内容很多时,浏览器会出现滚动条(body) - 需求.
现在有这样一个需求, 当富文本输入的内容超出屏幕时,屏幕滚动条需要滚到光标位置,保证光标不超出屏幕. - 条件
只有内容输入过多,超出屏幕,导致光标超出视口,再将滚动条滚到光标位置.让光标展示出来
在内容超出视口时,滚到上边,在中间插入光标填写内容可以正常添加,滚动条正常滚动 - 参考
知乎的写文章 富文本编译器.实现相同的效果 - 我的解决思路
富文本有一个change事件,可以在每次输入内容时触发.
(1) 在change事件中,获取光标所在位置. 和光标距离屏幕顶部的高度.
(2) 判断 如果光标超出视口, 那么使滚动条的高度 等于 光标距离屏幕顶端的高度 - 补充
因页面有两个编译器,可以理解为一个是输入免费的内容,一个是输入付费的内容. 所以对于光标位置,滚动条滚动的位置一定要精确. 我之前实现,滚动的位置总是过大,不够精确. 我的思路不一定正确.具体参考知乎编译器. 谢谢