【发布时间】:2015-07-06 02:52:44
【问题描述】:
HTML
<textarea rows='5'>
sdfasjfalsfjasf;klasdfklaksdfkjlasdfkjlasdjkfadls;fjklasdfjklasdkjlfaskljdfkalsjdfjlkasdfkjlasdkjlfasfkl;ajklsdfjklasdfkjlaskjldfaskjlfkljsadkjlfaskjldfkjlasdfkjlasdjklfaskljdfkjlasfkjlasdkjlfasjklfajklsdfjklasdfjlkadjsdfasjfalsfjasf;klasdfklaksdfkjlasdfkjlasdjkfadls;fjklasdfjklasdkjlfaskljdfkalsjdfjlkasdfkjlasdkjlfasfkl;ajklsdfjklasdfkjlaskjldfaskjlfkljsadkjlfaskjldfkjlasdfkjlasdjklfaskljdfkjlasfkjlasdkjlfasjklfajklsdfjklasdfjlkadjsdfasjfalsfjasf;klasdfklaksdfkjlasdfkjlasdjkfadls;fjklasdfjklasdkjlfaskljdfkalsjdfjlkasdfkjlasdkjlfasfkl;ajklsdfjklasdfkjlaskjldfaskjlfkljsadkjlfaskjldfkjlasdfkjlasdjklfaskljdfkjlasfkjlasdkjlfasjklfajklsdfjklasdfjlkadjsdfasjfalsfjasf;klasdfklaksdfkjlasdfkjlasdjkfadls;fjklasdfjklasdkjlfaskljdfkalsjdfjlkasdfkjlasdkjlfasfkl;ajklsdfjklasdfkjlaskjldfaskjlfkljsadkjlfaskjldfkjlasdfkjlasdjklfaskljdfkjlasfkjlasdkjlfasjklfajklsdfjklasdfjlkadj
</textarea>
<br />
<button id='scroll-to-cursor'>Scroll to Cursor</button>
JavaScript
$('#scroll-to-cursor').on('click', function() {
// ?
});
期望的结果
- 单击文本区域中的某处以放置光标。
- 滚开,使光标不可见。
- 点击“滚动到光标”按钮。
- Textarea 滚动到光标所在位置
注意:我使用的是 jQuery。
我能弄清楚如何滚动的唯一方法是使用 jQuery 的 scrollTop
功能。它将滚动位置设置为“在可滚动区域上方的视图中隐藏的像素数”。
我已经在下面图解了这个问题。将红线的长度(以像素为单位)传递给scrollTop 应该可以解决问题。但我不知道如何获得线的长度。
【问题讨论】:
-
this 链接是否有效?是纯 JS。
-
您可以简单地重新聚焦 textarea 以使其回到 webkit 浏览器中的光标位置。但在 IE/Firefox 中不起作用
-
@JonathanLevine 确实有效,谢谢!乍一看,我看到它是用于输入和水平滚动的,所以我认为它不适用,但我只是对其进行了测试,它确实有效。
标签: javascript jquery html scroll textarea