当前位置: 首页 > news >正文

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

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

 

//获取文本宽度
    var textWidth = function(text){ 
        var sensor = $('<pre>'+ text +'</pre>').css({display: 'none'}); 
        $('body').append(sensor); 
        var width = sensor.width();
        sensor.remove(); 
        return width;
    };

 

 

有了上面这个函数,input标签根据输入字符动态自适应宽度的实现就简单了:

 

//input宽度自适应
    $("input").unbind('keydown').bind('keydown', function(){
        $(this).width(textWidth($(this).val()));
    });

 

转载于:https://www.cnblogs.com/mymelody/p/5674261.html

相关文章:

  • Eclipse 3.2.2 安装、汉化和插件配置
  • iOS开发 贝塞尔曲线UIBezierPath(2)
  • Eclipse 平台入门
  • 【安卓面试题】Activity和Task的启动模式有哪些?每种含义是什么?举例说明各自的应用场景...
  • ??eclipse的安装配置问题!??
  • Eclipse 修改某个项目文件的编码类型
  • FastReport使用总结三——条码简介
  • Eclipse开发环境的使用
  • 线上mongodb 数据库用户到期时间修改的操作记录
  • 开源技术 Eclipse使用技巧
  • lucene maven
  • MyEclipse 5.5 + Tomcat 开发视频,下载,安装,配置,开发并运行Web项目
  • live555_RTSP连接建立以及请求消息处理过程
  • ??myeclipse+tomcat
  • linux添加静态路由表,重启继续生效(转载)
  • Angular2开发踩坑系列-生产环境编译
  • Brief introduction of how to 'Call, Apply and Bind'
  • Facebook AccountKit 接入的坑点
  • Octave 入门
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • SpringBoot几种定时任务的实现方式
  • SQLServer之索引简介
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Windows Containers 大冒险: 容器网络
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 创建一种深思熟虑的文化
  • 力扣(LeetCode)357
  • 如何用vue打造一个移动端音乐播放器
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • ​渐进式Web应用PWA的未来
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # .NET Framework中使用命名管道进行进程间通信
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (11)MATLAB PCA+SVM 人脸识别
  • (Oracle)SQL优化技巧(一):分页查询
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转) 深度模型优化性能 调参
  • (转)Unity3DUnity3D在android下调试
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NetCore 如何动态路由
  • .Net程序帮助文档制作
  • .Net接口调试与案例
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET企业级应用架构设计系列之应用服务器
  • @AutoConfigurationPackage的使用
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [AIGC] Spring Interceptor 拦截器详解
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [C语言]——函数递归
  • [C语言]——柔性数组
  • [ES-5.6.12] x-pack ssl