Jquery 自适应宽度的input

最近按老大嘱咐,在学一些奇奇怪怪的东西,gulp,sass,react啥的...

还在做一个仿QQ邮箱的添加联系人的那个东西。

对,就是这个。

我本来对这个的操作只有可以选人,可以删除选中的人...

但是!!!‘

开始做了之后,才发现哪里有我想的那么简单!!!

被卖了!!!

这里,主要是做一个所谓的自适应宽度的input框。

我纠结了很久。

只有一个思路:获取input框里的值的宽度,再去给width宽度

就是因为这个思路!

中断了一个月。

思路出问题了。

一个月后的我,也就是现在,在网上找了一些东西。

大部分都是08,09年贴出来的代码。

都是用JS。

=。=可是我Js手残啊,我Jquery写的比较多。

额,反正看了那些代码后,有一些是跟我上面的思路一样。

上面那个思路唯一的问题是无法确定获取的值的长度。汉字,英文,标点符号,数字,还有那些奇怪的符号?难道要写一个正则表达式?!

不行不行,我不会正则!

然后看到了一个新的思路:获取实时获取input框的值,把它丢到一个标签里,然后去用width()获取长度返回给input

例子在这里,戳

=。=啊,因为一开始没成功,所以我还评论了,亲测无效!

例子里面用的标签是pre。

所以如果从input框里获取一个值,然后丢入pre里,pre是会占满一整行的。这个时候input框给的值是非常长的。但是因为我只想要文字的宽度,纯文字的宽度!所以,我把pre改成了span。例子里面有代码,我这里就在贴一次。

$("#test1").unbind('keydown').bind('keydown', function(){
			$(this).width(textWidth($(this).val()));
	    });
 var textWidth = function(text){
	      var sensor = $('<span>'+ text +'</span>');
	      $("#test-part").append(sensor);
	      var width = sensor.width();
	      sensor.remove();
	      return width;
	  };

然后就!阔!以!了!

思路不对搞死人啊

************************************************我是5月9日当天的修正线****************************************************************

我刚刚一直以为是标签pre所以才会占满一整行...但是不是。

上面的例子与我参考的代码差别不止在于标签不同,我并没有给display:none这个属性。

貌似是这个的原因,影响了占满一行的原因。

另,并没有测过别的浏览器,目前只在chrome浏览器下做了实验。

要等基本的人员选择器做好了才回去别的浏览器下面测试。

时间: 2024-10-25 02:32:02

Jquery 自适应宽度的input的相关文章

基于jQuery自适应宽度跟高度可自定义焦点图

基于jQuery自适应宽度跟高度可自定义焦点图.这是一款带左右箭头,缩略小图切换的jQuery相册代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section class="cntr"> <div class="m10"> <h2 id="example" class="mt20 fcc4">Example</h2> <div class=&q

jquery自适应宽度轮播图

以前做轮播图,都是宽度,高度有一个固定的大小; juqery代码如下: $(function(){ var n=0 function nup(){ if(n<2){n=n+1}else{n=0} $(".banner_width img").hide() $(".banner_width img").eq(n).fadeIn(500) } var timer=setInterval(nup,5000) }) 这样可以让几张banner图片动起来; 最近的一个项

jQuery计算文本宽度和input标签根据输入字符动态自适应宽度的实现

jQuery计算文本宽度的原理是利用html提供的<pre>标签,向dom中动态添加<pre>标签,标签里的内容就是要测试长度的文本,获取完长度之后再删除刚才添加的<pre>标签,从而可取到文本的大概长度了.为什么要用标签而不用其他标签呢,那来看看<pre>标签的特性吧:pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符;而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.需要注

解决Button在IE6、7下的自适应宽度问题

很早就遇到过这么个小问题,但由于其并未影响到实际作用和美观就没有正面解决它,现在,我们来试着解决它. 写一个Button,有两种方式:其一,直接button标签:其二,input type=”button”. 不管哪种方式,Button的宽度在IE6.7下总是不能完美,接下来我们演示一个普通的Button,你可以用IE6或者IE7浏览器看看其显示宽度,然后对比Chrome或者IE8等浏览器,你会发现Bug的所在. 1.一个普通的Button: 可以很直接的看到Button的两边有空隙,当然,这个

解决左边固定右边自适应宽度的方案

上一篇文章中有提及过很多web前端开发者用float+margin+position:absolute来实现表单内容的左边文字固定右边的输入框自适应宽度的问题,当然,这个问题我也在百度中搜索过,基本搜索出来的答案都是这样描述的,我也在上一篇文章中提出过浮动和绝对定位属于脱离文档流布局,是会损耗性能的,但是百度中却没有给出我所想表达出的解决方案,所以不得不在此将该方案具体的描述清楚. 首先,我需要介绍的是display:box这个属性,它是今天弹性布局的主角,虽然它有个更加强大的弟弟display

基于jQuery自适应窗口大小导航菜单

基于jQuery自适应窗口大小导航菜单.这是一款响应式导航菜单特效,支持手机导航菜单代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <h1>jQuery / Zepto响应式菜单 PgwMenu 演示</h1> <p class="dowebok-explain">请缩小/放大浏览器窗口宽度查看效果</p> <h2>深色样式(默认)</h2> <ul class="pgwM

JS实现自适应宽度的Tag切换

效果体验:http://hovertree.com/texiao/js/3.htm 该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页. HTML文件代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS实现自适应宽度的Tag切换 - HoverTree</titl

从三栏自适应宽度布局到css布局的讨论

如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就会自适应了,下面是一个实时的demo: left  middle  right  但是table布局是不推荐的,table布局是css流行之前使用的布局,有很多缺点:当table加载完之前,整个table的都是空白的,table将数据和排版参和在一起,使得页面混乱,并且table布局修改排版十分麻烦

UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效果如图2: 这样子UEditor百度富文本编辑器会在第一次加载的时候获取屏幕宽度,然后赋值给initialFrameWidth属性. 这样子确实是可以在第一次加载的时候适应屏幕宽度,但是却似乎宽度稍微过了一点点,超过上面的灰条了.而且这里还有一个问题: 当你改变浏览器大小时,会有个很严重的排版BUG