javascript - 我希望我的网页上input框中输入内容越多,字号会自动变小
PHPz
PHPz 2017-04-10 15:43:25
[JavaScript讨论组]

我希望在输入时候,因为输入宽的宽度不变,所以越输入越多的时候,字号会自动变小,实现思路应该是怎么样的,怎么实时监听呢?谢谢各位大侠

PHPz
PHPz

学习是最好的投资!

全部回复(8)
PHP中文网

我的思路是监听input的change时间,并且给input设置size属性,当输入的文字等于size设置的值时,动态的改变size的值并且改变字体的大小。

黄舟

监听onchange呗

高洛峰

= =。这个想法太不行了,你如果用户输入30个字,然后发现文字都看不清了(谷歌最小字体12px),这样的用户体验是不好的。

怪我咯

用change事件在鼠标离开的时候才生效,bind键盘的keyup事件,然后通过event.keycode来判断

$("#inputid").keyup(function(event){
    if ((event.keyCode > 40 || event.keyCode == 8 || event.keyCode == 32)) { 

     }
    /* keycode 40 = Down, 
    8 = BackSpace BackSpace, 
    32 = space space Keys with codes 40 and below are special 
    (enter, arrow keys, escape, etc.)
    */
});

然后根据length来设置font-size

大家讲道理

onKeyUp 事件嘛 改变input的size 会好一点吧

高洛峰

我的思路是用angular监听input,然后将文字绑定到另个宽度auto的p中,然后每次变化都监听该p的宽度,然后计算是否要改变字号,如果我做好了会上传

伊谢尔伦

onkeyup 之后还要计算长度,因为一直按会有个漏洞。

伊谢尔伦

使用input propertychange(兼容IE8) 事件动态改变font-size
写了Demo:http://jsfiddle.net/abf7bux7/
字体的长度与大小的比例根据需求调整

<input type="text" id="un" style="font-size: 40px;width: 200px;height: 40px;"/>
<script>
    var un = document.getElementById('un');
    un.addEventListener('input',function(){ 
        var len = this.value.length/1;
        un.style.fontSize =  40 *1/len + 'px';
    },false);
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号