autoResize.js
/*
* jQuery autoResize (textarea auto-resizer)
* @copyright James Padolsey http://james.padolsey.com
* @version 1.04
*/
(function($){
$.fn.autoResize = function(options) {
// Just some abstracted details,
// to make plugin users happy:
var settings = $.extend({
onResize : function(){},
animate : true,
animateDuration : 150,
animateCallback : function(){},
extraSpace : 20,
limit: 1000
}, options);
// Only textarea's auto-resize:
this.filter('textarea').each(function(){
// Get rid of scrollbars and disable WebKit resizing:
var textarea = $(this).css({resize:'none','overflow-y':'hidden'}),
// Cache original height, for use later:
origHeight = textarea.height(),
// Need clone of textarea, hidden off screen:
clone = (function(){
// Properties which may effect space taken up by chracters:
var props = ['height','width','lineHeight','textDecoration','letterSpacing'],
propOb = {};
// Create object of styles to apply:
$.each(props, function(i, prop){
propOb[prop] = textarea.css(prop);
});
// Clone the actual textarea removing unique properties
// and insert before original textarea:
return textarea.clone().removeAttr('id').removeAttr('name').css({
position: 'absolute',
top: 0,
left: -9999
}).css(propOb).attr('tabIndex','-1').insertBefore(textarea);
})(),
lastScrollTop = null,
updateSize = function() {
// Prepare the clone:
clone.height(0).val($(this).val()).scrollTop(10000);
// Find the height of text:
var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace,
toChange = $(this).add(clone);
// Don't do anything if scrollTip hasen't changed:
if (lastScrollTop === scrollTop) { return; }
lastScrollTop = scrollTop;
// Check for limit:
if ( scrollTop >= settings.limit ) {
$(this).css('overflow-y','hidden');
return;
}
// Fire off callback:
settings.onResize.call(this);
// Either animate or directly apply height:
settings.animate && textarea.css('display') === 'block' ?
toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback)
: toChange.height(scrollTop);
};
// Bind namespaced handlers to appropriate events:
textarea
.unbind('.dynSiz')
.bind('keyup.dynSiz', updateSize)
.bind('keydown.dynSiz', updateSize)
.bind('change.dynSiz', updateSize);
});
// Chain:
return this;
};
})(jQuery);
使用
$(function(){
$('textarea').autoResize({
// On resize:
onResize : function() {
$(this).css({opacity:0.8});
},
// After resize:
animateCallback : function() {
$(this).css({opacity:1});
},
// Quite slow animation:
animateDuration : 100,
// More extra space:
extraSpace : 0
});
})
分享到:
相关推荐
"autoresize"插件是jQuery的一个扩展,它能实时监控textarea中的文本变化,并根据内容自动调整textarea的高度,使得文本始终保持在最后一行,无需用户滚动查看。 要使用"autoresize"插件,首先确保引入了jQuery库。...
为了解决这个问题,我们可以实现一个定宽的`textarea`,使其能够根据内容自动调整高度。这种功能在各种在线编辑器、评论区或表单填写场景中都非常实用。 在HTML中,`textarea`元素具有`rows`和`cols`属性,分别用于...
为了解决这个问题,我们可以使用jQuery来创建一个插件,该插件能够在用户输入或修改文本时,自动调整TextArea的高度,以适应当前文本量。这种技术被称为“高度自适应”。 ### 二、代码解析 #### 1. 初始化设置 在...
无滚动条Textarea自动适用高度.html Textarea
根据输入自动调整 textarea 高度 ##在线演示 ##用法 // Enable: $ ( < textarea selector > ).autosize(); // Disable: $( < textarea selector > ).autosize(false); // Handle autosize ...
值得注意的是,虽然jQuery Textarea Fullscreen插件提供了基本的全屏功能,但可能还需要与其他jQuery插件或自定义脚本结合使用,以实现更丰富的功能,如文本格式化、自动保存、代码高亮等。同时,为了确保无障碍性,...
根据文字的多少自动增高 能够自动伸缩 也可以 ←Backspace 减少字体的同时高度跟着减
本文将详细介绍一个支持textarea内容高亮的jQuery插件,及其应用方法和相关知识点。 ### 插件简介 "jquery.highlight"是一个专门用于实现文本高亮的jQuery插件。它能够轻松地对HTML元素内的文本进行匹配和高亮,...
本文将详细介绍一款基于jQuery的插件,该插件专门用于为textarea添加行号,使得用户在编辑长文本时能够更加便捷地追踪和定位每一行。 首先,让我们了解这个插件的基本原理。在HTML中,textarea元素常用于收集用户...
jQuery TextArea Auto-Height plugin jquery插件
在许多场景下,我们希望textarea能根据用户输入的内容自动调整其高度,以提供更好的用户体验。"textarea 输入框自适应高度"这个主题就是关于如何实现这样一个功能的探讨。 在HTML中,textarea元素默认是不会自动...
本文将重点介绍标题为“jQuery 文本框字符限制插件 Textarea”的相关知识点,该插件主要用于限制用户在textarea文本框中输入的字符数。 在网页设计中,有时我们需要对用户的输入进行控制,例如限制评论长度、留言...
jQuery扩展函数,用于获取设置textarea中光标位置
本示例中,我们将探讨如何使用jQuery实现textarea文本框的字数限制功能,并实时提示用户输入的字符数量。 首先,让我们了解jQuery的基本概念。jQuery通过一个"$"符号作为入口,提供了一种简洁的方式来选择DOM元素、...
针对textarea元素,有时候我们希望它能根据用户输入的内容自动调整高度,以避免滚动条的出现,提供更友好的用户体验。这就是"基于jQuery的让textarea自适应高度的插件"所解决的问题。 这个插件的核心功能在于,当...
以上就是使用jQuery在textarea中插入和提交gif动态QQ表情的基本流程。实际应用中可能需要处理更多细节,如表情的缓存、错误处理和用户界面优化等。对于压缩包中的`texiao7081_1560680890`文件,可能是包含了实现此...
然而,原始的`textarea`元素并不具备自动调整高度的功能,当用户输入多行文字时,可能会超出可视区域,导致用户体验下降。为解决这一问题,`autoHeightTextarea`应运而生,它是一款基于jQuery的插件,旨在让`...
当用户尝试提交表单时,`jquery.validate.js`会自动检查所有字段,如果textarea的长度超过200个字符,就会阻止表单提交并显示错误信息。 通过这种方式,我们可以灵活地控制用户在textarea中输入的文本长度,提高...
在Vue.js框架中,开发网页应用时,我们经常会遇到需要创建一个可以自动调整高度的textarea元素,以适应用户输入的大量文本。这个功能对于避免显示滚动条和保持页面整洁至关重要。下面将详细介绍如何使用Vue自定义...