星空网 > 软件开发 > Java

我的插件のinput文本框实现宽度自适应

本章节介绍一下如何让一个文本框的宽度能够随着文本框中的内容的宽度增长而增长,也就是能够实现宽度自适应效果。

代码实例如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="skyFi.github.io/skylor" /><title>skyFi.github.io/skylor</title> 

<script type="text/javascript">
window.onload=function(){

var otxt=document.getElementById("txt");
otxt.onkeyup=function(){

this.size=(this.value.length>4?this.value.length:4);
}
}

</script>

</head>

<body>

<input type="text" id="txt" size="4"/>

</body>

</html>

查看演示:input文本框实现宽度自适应

以上代码实现了我们的要求,代码非常的简单,注册onkeyup事件处理函数,此函数可以判断当前输入内容的长度是否大于默认长度,如果不大于,则文本框的长度就是4,否则就是输入内容的长度。

但是,这个方式实现了英文输入能够很好地工作,可是当遇到使用中文输入法的时候就不是那么的好用了。因为一般中文输入法都是先有英文,按下space后才把文字输入到输入框的,这会照成计算错误。

而且这个一般不能满足大多数人的需求,于是我又弄一种并组装了下:请看代码

;(function ($) {    $.fn.autoFit = function() {      var $this = $(this);      var oldWidth = parseInt($this.css('width'));      $this.keydown(function (event) {        var $this = $(this);        setTimeout(function() {          var val = $this.val().replace(/ /g, '&nbsp');          var fontSize = $this.css('font-size');          var fontFamily = $this.css('font-family');          var padding = $this.outerWidth() - $this.width();          var contentWidth = $('<span id="autowidthforinputtext" >' + val + '</span>').insertAfter($this).outerWidth();          var newWidth = ((contentWidth + padding) > oldWidth) ? (contentWidth + padding) : oldWidth;          $('#autowidthforinputtext').remove();          $this.width(newWidth + 'px');        }, 0);      });      return $this;    };})(this['jQuery']);$('#txt').autoFit();

于是这个就可以很好地工作了,恩,自己很满意。测试路子. github源码

想了下还是简单分析下吧:

1、这是Q的fn扩展,好处是可以直接JQuery对象用’.‘就能调用我的函数。

2、采用闭包避免命名污染,同时包装记录最开始用户定义的input宽度。

3、巧妙使用0延时的setTimeout使得插件很好地支持了中文输入法带来的之前的BUG。至于为什么,我的另一篇文章中有介绍,setTimeout执行队列啥的。

4、对输入的空格做了转码处理。




原标题:我的插件のinput文本框实现宽度自适应

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

留评9W+的产品都难逃“毒手”!欧洲卖家一定要小心!:https://www.kjdsnews.com/a/1549735.html
有什么邮件营销策划方法?如何设计邮件模板?:https://www.kjdsnews.com/a/1550691.html
独立站的运营策略有哪些?自建站经营战略?:https://www.kjdsnews.com/a/1550692.html
合规经营,是企业的“免死金牌”:https://www.kjdsnews.com/a/1550693.html
【税务】个税汇算中关于境外所得的8个热点问题解答:https://www.kjdsnews.com/a/1550694.html
6家快递公司入围《财富》中国500强;空客、波音发布新业绩:https://www.kjdsnews.com/a/1550695.html
泰国签证有出生地 泰国出生入籍护照:https://www.vstour.cn/a/411245.html
宠物梳专利查询分析:https://www.kjdsnews.com/a/1842293.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流