在textarea的底部添加空间

时间:2011-07-08 21:00:39

标签: javascript jquery user-interface textarea

似乎无法找到一个体面的方式来做到这一点。我的编辑器是全屏编辑器,而不是普通的textarea。它用于全屏编辑,问题是,目前,一旦你到达页面的末尾,你总是在浏览器窗口的底部输入,除非你输入很多次。

我正在考虑在textarea的底部添加一堆\n\n\n\n\n,它们总是在那里(如果你删除它们并再次开始输入它会将它们弹回),但我不确定它是多么好工作或实施的最佳方式。有什么想法吗?

我最好的想法是,检查textarea值的最后N个字符是否等于我认为是一个好的缓冲区,即6 \n s做一点正则表达式。如果相等,则将其添加到底部并滚动到底部(使其看起来像填充)。

仅使用JavaScript和jQuery(1.6,所以.prop()示例,而不是.attr()!)

这是向下滚动的屏幕截图(无填充): screenshot

== UPDATE == 填充的问题是编辑器被视为不是全屏而且看起来很奇怪:

padding issue

我认为解决方案需要动态修改实际文本......也许

2 个答案:

答案 0 :(得分:4)

尝试将带有CSS的填充应用到textarea的底部

.editor {
    padding-bottom: 60px; //or the equivalent of 6 lines
}

答案 1 :(得分:0)

Rodaine的填充底部答案很好,但如果您不想因显示文档内容而失去那些空间,我有点疯狂。

如果定义了font-size和line-height,则可以直接在光标位置之前计算文本字符的y坐标(http://stackoverflow.com/questions/263743/how-to-get-cursor - 位功能于文本区域)。像((字体高度+行高)*当前光标行)。然后,当该y值超过特定阈值时,您会执行负边距顶部或向上移动编辑空间。