【发布时间】:2017-06-08 11:04:08
【问题描述】:
我有一个自动扩展的文本区域。粘贴极长文本(超过窗口高度)时,后续键入会导致浏览器滚动条跳跃。尝试在底部键入时会发生这种情况,因为文档高度也在增长。
有什么想法吗?
Codepen:https://codepen.io/btn-ninja/pen/bRVKYe
function growTextarea (i,elem) {
var elem = $(elem);
var offset = elem.prop('offsetHeight') - elem.prop('clientHeight');
var resizeTextarea = function( elem ) {
elem.css('height', 'auto').css('height', elem.prop('scrollHeight') + offset );
};
elem.on('input', function() {
resizeTextarea( $(this) );
});
resizeTextarea( $(elem) );
}
$('.jTextarea').each(growTextarea);
【问题讨论】:
-
“跳跃”到底是什么意思?您是指加载滚动条时页面的轻微偏移吗?
-
你在 IE 中吗?
-
您正在更改导致闪烁的每个输入的高度。你检查过这个图书馆吗? technoreply.com/autogrow-textarea-plugin-3-0
-
当您将很长的内容添加/粘贴到文本区域时,跳转是垂直的。为了强调这一点,我在 textarea 上添加了 200px 的底部边距。然后你看到,随着页面内容的增长,页面底部出现了垂直滚动条跳跃。 (PS - 建议的插件代码更长,并没有解决这个问题。)
标签: javascript jquery