基于javascript制作微博發(fā)布欄效果
本文為大家分享了做微博發(fā)布欄效果的過程,涉及到的知識(shí)點(diǎn)包括以下:
1.判斷IE的方法:直接用 var ie=!-[1,];即可
2.連續(xù)發(fā)生事件的用法:
IE下:觸發(fā)對(duì)象.onpropertychange
標(biāo)準(zhǔn)下:觸發(fā)對(duì)象.oninput
3.焦點(diǎn)聚集和移開事件。onfocus和onblur
4.判斷單字節(jié)(0-255之間)與雙子節(jié):正則表達(dá)式:/[^\x00-\xff]/g
代碼如上:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> #div1{width: 400px;margin: 20px auto;border: 1px solid #ccc} #div1 p{float: right;margin: 0;font-size: 13px;} #div1 textarea{width: 400px;height: 280px;} #div1 a{background: #ccc;float: right;color: #FFFFFF;text-align: center;background: #00FF00;width: 50px;height: 30px} #div1 a.dis{background: #ccc;color: black;} </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript"> window.onload=function () { var oDiv=document.getElementById('div1'); var oP=oDiv.getElementsByTagName('p')[0]; var oT=oDiv.getElementsByTagName('textarea')[0]; var oA=oDiv.getElementsByTagName('a')[0]; var bool=true; var ie=!-[1,]; var timer=null; var num=0; //給文本框加聚焦事件 oT.onfocus=function() { if(bool) { oP.innerHTML='你還可以輸入<span>90</span>字'; bool=false; } } oT.onblur=function() { if(oT.value=='') { oP.innerHTML='請(qǐng)輸入你的留言'; bool=true; } } //輸入內(nèi)容,計(jì)算字?jǐn)?shù) if(ie) { oT.onpropertychange=toChange;//連續(xù)觸發(fā) } else { oT.oninput=toChange; } function toChange() { var num=Math.ceil(getLength(oT.value)/2);//向上取整 var oSpan=oDiv.getElementsByTagName('span')[0]; if(num<=90) { oSpan.innerHTML=90-num; oSpan.style.color=''; } else { oSpan.innerHTML=num-90; oSpan.style.color='red'; } if(oT.value==''||num>90) { oA.className='dis'; } else { oA.className=''; } } function getLength(str) { return String(str).replace(/[^\x00-\xff]/,'aa').length;//不是單雙節(jié)的將其變?yōu)閮蓚€(gè)單雙節(jié)的 } //點(diǎn)擊按鈕,變色 oA.onclick=function() { if(this.className=='dis') { clearInterval(timer); timer=setInterval(function(){ if(num>5){clearInterval(timer);num=0;} else{ num++; } if(num%2) { oT.style.background='red'; } else { oT.style.background=''; } },100) } else { alert('發(fā)布成功'); } } } </script> </head> <body > <div id='div1'> <p>請(qǐng)輸入你的留言</p> <textarea></textarea> <a href="#" class="dis">發(fā)布</a> </div> </body> </html>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
Javascript中this關(guān)鍵字指向問題的測試與詳解
this是Javascript中一個(gè)非常容易理解錯(cuò),進(jìn)而用錯(cuò)的特性。所以下面這篇文章主要給大家介紹了關(guān)于Javascript中this關(guān)鍵字指向問題的相關(guān)資料,文中通過測試的題目考驗(yàn)大家對(duì)this的熟悉程度,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08JavaScript Date對(duì)象詳解及時(shí)間戳和時(shí)間的相互轉(zhuǎn)換問題
這篇文章主要介紹了JavaScript Date對(duì)象詳解及時(shí)間戳和時(shí)間的相互轉(zhuǎn)換問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01使用VSCode調(diào)試Electron主進(jìn)程的方法步驟
本文主要介紹了使用VSCode調(diào)試Electron主進(jìn)程的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01javascript實(shí)現(xiàn)下班倒計(jì)時(shí)效果的方法(可桌面通知)
這篇文章主要介紹了javascript實(shí)現(xiàn)下班倒計(jì)時(shí)效果的方法,涉及javascript倒計(jì)時(shí)效果及桌面提示效果的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值2015-07-07javascript實(shí)現(xiàn)滾動(dòng)條效果
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)滾動(dòng)條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03JS如何根據(jù)條件取出數(shù)組中對(duì)應(yīng)項(xiàng)
這篇文章主要介紹了JS根據(jù)條件取出數(shù)組中對(duì)應(yīng)項(xiàng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03javascript實(shí)現(xiàn)checkBox的全選,反選與賦值
這篇文章主要介紹了javascript實(shí)現(xiàn)checkBox的全選,反選與賦值的方法,以實(shí)例形式詳細(xì)分析了實(shí)現(xiàn)的思路及對(duì)應(yīng)的html與js代碼的實(shí)現(xiàn)過程2015-03-03