最近使用twitter多了起来,发觉她的字符计数器十分的完美,不管在输入框中进行粘贴还是剪切等操作,计数器都能迅速而准确地得到剩余字符数。看到如此完美的东东,总是让人想“据为己有”的,于是决定自己弄一个(虽然我还没想好应用到什么地方)。
首先看看人家是怎么做的,打开“源代码”, 😐 看到那一团团的代码,我有点发懵,还是自己想想吧。
我的想法是比较简单的:就是在触发某个事件后,对比定义的最大字符数(如twitter的140个字符)和已输入的字符数,得到可用字符数后,再打印到指定的区域上。
用上面的思路制作出来的计数器,是可以用的,但在剪切时,由于它不能触发javascript里现有的事件(可能是我不知道,因为javascript接触的比较少),所以计数器将不能实时地计算可用字符数。
一番折腾后,想到用循环的方法进行计算。也就是:当触发某个事件后,就隔一段时间对可用字符数进行一次计算。果然好使,到这里基本就能完美地呈现twitter字符计数器的样子了。 😈
javascript代码如下:
<script type="text/javascript"> <!-- var box = document.getElementById("box"); var numAll = 140; var num = document.getElementById("num"); var next; box.onclick = countIt; function countIt() { t = setInterval("count()", 200); } function count() { if (box.value.length <= numAll) { next = numAll - box.value.length; num.value = next; } else{ next = box.value.length - numAll; num.value = '-'+next; } } //--> </script>
点击查看示例
[…] 【来源】冰古 – 制作一个类似twitter的字符计数器 业界动态 JavaScript, 前端开发, 用户界面, 脚本代码 […]
王晓峰的blog估计可以用,省得很多人长篇大论
可能他用了,就没人跟他论了。
来学习学习!!!!
在Chrome下可以一直增加文字内容,countdown为负都可以的。看来兼容性方面还需要改进:)
是这样的,这仅仅是提示还有多少个字符可以输入而已,他不会阻止你继续输入文字。如果真要限制也是php等程序的工作了。
哦,我还以为是要跟twitter一模一样的,恶呵呵。看来我受UCH影响颇深。
twitter究竟用来做什么,我一直比较迷茫。似乎像你这样web前端做得多的人用处大点,因为天天都挂在网上。
我也有点迷惘,不过最近看到的是这个意思:加的人多了,你的链接被点击的机率就大了。
不错
不错对中文识别挺好
感觉不用监听在textarea里加个onkeydown之类的事件就行了~结果实验了一下居然没办法捕捉到中文输入法
沙发!字数控制可以用来作为某个免费发短信的服务的一个特性…嘿嘿
免费发短信啊,一般人做不了这个。
看来这个应用的地方还真没有多少。 🙄
当成一个javascript的练习吧。 😐