Javascript特效之控制輸入字數和進度條顯示
我們經常會遇到一些網頁的輸入框會限制輸入的字數,並且會顯示出當前輸入了多少個字符,今天來看看怎麼實現。
效果圖:
可以看到,我們每輸入一個字符下面的進度條會跟着變。
實現思路:
首先設置好總字數,再爲文本框註冊鍵盤按下事件。沒按下按鍵或者刪除字符都要進行處理,如果超過總字符數則截取掉。
顏色則是通過rgb來控制越來越紅。
js代碼:
function textCounter(field,counter,maxlimit,linecounter) {
// text width//
var fieldWidth = parseInt(field.offsetWidth);
var charcnt = field.value.length;
// trim the extra text
if (charcnt > maxlimit) {
field.value = field.value.substring(0, maxlimit);
}
else {
// progress bar percentage
var percentage = parseInt(100 - (( maxlimit - charcnt) * 100)/maxlimit) ;
document.getElementById(counter).style.width = parseInt((fieldWidth*percentage)/100)+"px";
document.getElementById(counter).innerHTML="已輸: "+percentage+"%"
// color correction on style from CCFFF -> CC0000
setcolor(document.getElementById(counter),percentage,"background-color");
}
}
function setcolor(obj,percentage,prop){
obj.style[prop] = "rgb(80%,"+(100-percentage)+"%,"+(100-percentage)+"%)";
}