首页 > 我希望我的网页上input框中输入内容越多,字号会自动变小

我希望我的网页上input框中输入内容越多,字号会自动变小

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


用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


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


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


监听onchange呗


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


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


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


使用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>
【热门文章】
【热门文章】