Js实现无刷新删除内容
Js实现无刷新删除内容
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> <title>仿腾讯微博效果</title> <styletype="text/css"> body,div,h2,h3,ul,li,p{margin:0;padding:0;} a{text-decoration:none;} a:hover{text-decoration:underline;} ul{list-style-type:none;} body{color:#333;background:#3c3a3b;font:12px/1.5\5b8b\4f53;} #msgBox{width:500px;background:#fff;border-radius:5px;margin:10pxauto;padding-top:10px;} #msgBoxformh2{font-weight:400;font:40018px/1.5\5fae\8f6f\96c5\9ed1;} #msgBoxform{background:url()repeat-x0bottom;padding:020px15px;} #userName,#conBox{color:#777;border:1pxsolid#d0d0d0;border-radius:6px;background:#fffurl(img/inputBG.png)repeat-x;padding:3px5px;font:14px/1.5arial;} #userName.active,#conBox.active{border:1pxsolid#7abb2c;} #userName{height:20px;} #conBox{width:448px;resize:none;height:65px;overflow:auto;} #msgBoxformdiv{position:relative;color:#999;margin-top:10px;} #msgBoximg{border-radius:3px;} #face{position:absolute;top:0;left:172px;} #faceimg{width:30px;height:30px;cursor:pointer;margin-right:6px;opacity:0.5;filter:alpha(opacity=50);} #faceimg.hover,#faceimg.current{width:28px;height:28px;border:1pxsolid#f60;opacity:1;filter:alpha(opacity=100);} #sendBtn{border:0;width:112px;height:30px;cursor:pointer;margin-left:10px;background:url(img/btn.png)no-repeat;} #sendBtn.hover{background-position:0-30px;} #msgBoxform.maxNum{font:26px/30pxGeorgia,Tahoma,Arial;padding:05px;} #msgBox.list{padding:10px;} #msgBox.listh3{position:relative;height:33px;font-size:14px;font-weight:400;background:#e3eaec;border:1pxsolid#dee4e7;} #msgBox.listh3span{position:absolute;left:6px;top:6px;background:#fff;line-height:28px;display:inline-block;padding:015px;} #msgBox.listul{overflow:hidden;zoom:1;} #msgBox.listulli{float:left;clear:both;width:100%;border-bottom:1pxdashed#d8d8d8;padding:10px0;background:#fff;overflow:hidden;} #msgBox.listulli.hover{background:#f5f5f5;} #msgBox.list.userPic{float:left;width:50px;height:50px;display:inline;margin-left:10px;border:1pxsolid#ccc;border-radius:3px;} #msgBox.list.content{float:left;width:400px;font-size:14px;margin-left:10px;font-family:arial;word-wrap:break-word;} #msgBox.list.userName{display:inline;padding-right:5px;} #msgBox.list.userNamea{color:#2b4a78;} #msgBox.list.msgInfo{display:inline;word-wrap:break-word;} #msgBox.list.times{color:#889db6;font:12px/18pxarial;margin-top:5px;overflow:hidden;zoom:1;} #msgBox.list.timesspan{float:left;} #msgBox.list.timesa{float:right;color:#889db6;display:none;} .tr{overflow:hidden;zoom:1;} .trp{float:right;line-height:30px;} .tr*{float:left;} </style> <scripttype="text/javascript"> varget={ byId:function(id){ returntypeofid==="string"?document.getElementById(id):id }, byClass:function(sClass,oParent){ varaClass=[]; varreClass=newRegExp("(^|)"+sClass+"(|$)"); varaElem=this.byTagName("*",oParent); for(vari=0;i<aElem.length;i++)reClass.test(aElem[i].className)&&aClass.push(aElem[i]); returnaClass }, byTagName:function(elem,obj){ return(obj||document).getElementsByTagName(elem) } }; /*--------------------------+ 事件绑定,删除 +--------------------------*/ varEventUtil={ addHandler:function(oElement,sEvent,fnHandler){ oElement.addEventListener?oElement.addEventListener(sEvent,fnHandler,false):(oElement["_"+sEvent+fnHandler]=fnHandler,oElement[sEvent+fnHandler] =function(){oElement["_"+sEvent+fnHandler]()},oElement.attachEvent("on"+sEvent,oElement[sEvent+fnHandler])) }, removeHandler:function(oElement,sEvent,fnHandler){ oElement.removeEventListener?oElement.removeEventListener(sEvent,fnHandler,false):oElement.detachEvent("on"+sEvent,oElement[sEvent+fnHandler]) }, addLoadHandler:function(fnHandler){ this.addHandler(window,"load",fnHandler) } }; /*--------------------------+ 设置css样式 读取css样式 +--------------------------*/ functioncss(obj,attr,value) { switch(arguments.length) { case2: if(typeofarguments[1]=="object") { for(variinattr)i=="opacity"?(obj.style["filter"]="alpha(opacity="+attr[i]+")",obj.style[i]=attr[i]/100):obj.style[i]=attr[i]; } else { returnobj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,null)[attr] } break; case3: attr=="opacity"?(obj.style["filter"]="alpha(opacity="+value+")",obj.style[attr]=value/100):obj.style[attr]=value; break; } }; EventUtil.addLoadHandler(function() { varoMsgBox=get.byId("msgBox"); varoUserName=get.byId("userName"); varoConBox=get.byId("conBox"); varoSendBtn=get.byId("sendBtn"); varoMaxNum=get.byClass("maxNum")[0]; varoCountTxt=get.byClass("countTxt")[0]; varoList=get.byClass("list")[0]; varoUl=get.byTagName("ul",oList)[0]; varaLi=get.byTagName("li",oList); varaFtxt=get.byClass("f-text",oMsgBox); varaImg=get.byTagName("img",get.byId("face")); varbSend=false; vartimer=null; varoTmp=""; vari=0; varmaxNum=140; //禁止表单提交 EventUtil.addHandler(get.byTagName("form",oMsgBox)[0],"submit",function(){returnfalse}); //为广播按钮绑定发送事件 EventUtil.addHandler(oSendBtn,"click",fnSend); //为Ctrl+Enter快捷键绑定发送事件 EventUtil.addHandler(document,"keyup",function(event) { varevent=event||window.event; event.ctrlKey&&event.keyCode==13&&fnSend() }); //发送广播函数 functionfnSend() { varreg=/^\s*$/g; if(reg.test(oUserName.value)) { alert("\u8bf7\u586b\u5199\u60a8\u7684\u59d3\u540d"); oUserName.focus() } elseif(!/^[u4e00-\u9fa5\w]{2,8}$/g.test(oUserName.value)) { alert("\u59d3\u540d\u75312-8\u4f4d\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6c49\u5b57\u7ec4\u6210\uff01"); oUserName.focus() } elseif(reg.test(oConBox.value)) { alert("\u968f\u4fbf\u8bf4\u70b9\u4ec0\u4e48\u5427\uff01"); oConBox.focus() } elseif(!bSend) { alert("\u4f60\u8f93\u5165\u7684\u5185\u5bb9\u5df2\u8d85\u51fa\u9650\u5236\uff0c\u8bf7\u68c0\u67e5\uff01"); oConBox.focus() } else { varoLi=document.createElement("li"); varoDate=newDate(); oLi.innerHTML="<divclass=\"userPic\"><imgsrc=\""+get.byClass("current",get.byId("face"))[0].src+"\"></div>\ <divclass=\"content\">\ <divclass=\"userName\"><ahref=\"javascript:;\">"+oUserName.value+"</a>:</div>\ <divclass=\"msgInfo\">"+oConBox.value.replace(/<[^>]*>| /ig,"")+"</div>\ <divclass=\"times\"><span>"+format(oDate.getMonth()+1)+"\u6708"+format(oDate.getDate())+ "\u65e5"+format(oDate.getHours())+":"+format(oDate.getMinutes())+"</span><aclass=\"del\"href=\"javascript:;\">\u5220\u9664</a></div>\ </div>"; //插入元素 aLi.length?oUl.insertBefore(oLi,aLi[0]):oUl.appendChild(oLi); //重置表单 get.byTagName("form",oMsgBox)[0].reset(); for(i=0;i<aImg.length;i++)aImg[i].className=""; aImg[0].className="current"; //将元素高度保存 variHeight=oLi.clientHeight-parseFloat(css(oLi,"paddingTop"))-parseFloat(css(oLi,"paddingBottom")); varalpah=count=0; css(oLi,{"opacity":"0","height":"0"}); timer=setInterval(function() { css(oLi,{"display":"block","opacity":"0","height":(count+=8)+"px"}); if(count>iHeight) { clearInterval(timer); css(oLi,"height",iHeight+"px"); timer=setInterval(function() { css(oLi,"opacity",(alpah+=10)); alpah>100&&(clearInterval(timer),css(oLi,"opacity",100)) },30) } },30); //调用鼠标划过/离开样式 liHover(); //调用删除函数 delLi() } }; //事件绑定,判断字符输入 EventUtil.addHandler(oConBox,"keyup",confine); EventUtil.addHandler(oConBox,"focus",confine); EventUtil.addHandler(oConBox,"change",confine); //输入字符限制 functionconfine() { variLen=0; for(i=0;i<oConBox.value.length;i++)iLen+=oConBox.value.charAt(i).charCodeAt()>255?1:0.5; oMaxNum.innerHTML=Math.abs(maxNum-Math.floor(iLen)); maxNum-Math.floor(iLen)>=0?(css(oMaxNum,"color",""),oCountTxt.innerHTML="\u8fd8\u80fd\u8f93\u5165",bSend=true):(css(oMaxNum,"color","#f60"), oCountTxt.innerHTML="\u5df2\u8d85\u51fa",bSend=false) } //加载即调用 confine(); //广播按钮鼠标划过样式 EventUtil.addHandler(oSendBtn,"mouseover",function(){this.className="hover"}); //广播按钮鼠标离开样式 EventUtil.addHandler(oSendBtn,"mouseout",function(){this.className=""}); //li鼠标划过/离开处理函数 functionliHover() { for(i=0;i<aLi.length;i++) { //li鼠标划过样式 EventUtil.addHandler(aLi[i],"mouseover",function(event) { this.className="hover"; oTmp=get.byClass("times",this)[0]; varaA=get.byTagName("a",oTmp); if(!aA.length) { varoA=document.createElement("a"); oA.innerHTML="删除"; oA.className="del"; oA.href="javascript:;"; oTmp.appendChild(oA) } else { aA[0].style.display="block"; } }); //li鼠标离开样式 EventUtil.addHandler(aLi[i],"mouseout",function() { this.className=""; varoA=get.byTagName("a",get.byClass("times",this)[0])[0]; oA.style.display="none" }) } } liHover(); //删除功能 functiondelLi() { varaA=get.byClass("del",oUl); for(i=0;i<aA.length;i++) { aA[i].onclick=function() { varoParent=this.parentNode.parentNode.parentNode; varalpha=100; variHeight=oParent.offsetHeight; timer=setInterval(function() { css(oParent,"opacity",(alpha-=10)); if(alpha<0) { clearInterval(timer); timer=setInterval(function() { iHeight-=10; iHeight<0&&(iHeight=0); css(oParent,"height",iHeight+"px"); iHeight==0&&(clearInterval(timer),oUl.removeChild(oParent)) },30) } },30); this.onclick=null } } } delLi(); //输入框获取焦点时样式 for(i=0;i<aFtxt.length;i++) { EventUtil.addHandler(aFtxt[i],"focus",function() {this.className="active"}); EventUtil.addHandler(aFtxt[i],"blur",function(){this.className=""}) } //格式化时间,如果为一位数时补0 functionformat(str) { returnstr.toString().replace(/^(\d)$/,"0$1") } //头像 for(i=0;i<aImg.length;i++) { aImg[i].onmouseover=function() { this.className+="hover" }; aImg[i].onmouseout=function() { this.className=this.className.replace(/\s?hover/,"") }; aImg[i].onclick=function() { for(i=0;i<aImg.length;i++)aImg[i].className=""; this.className="current" } } }); </script> </head> <body> <divid="msgBox"> <form> <h2>来,说说你在做什么,想什么</h2> <div> <inputid="userName"class="f-text"value=""/> <pid="face"><imgsrc="face1.gif"class="current"/><imgsrc="face2.gif"/><imgsrc="face1.gif"/><imgsrc="face2.gif"/></p> </div> <div><inputid="conBox"class="f-text"></div> <divclass="tr"> <p> <spanclass="countTxt">还能输入</span><strongclass="maxNum">140</strong><span>个字</span> <inputid="sendBtn"type="button"value=""title="快捷键Ctrl+Enter"/> </p> </div> </form> <divclass="list"> <h3><span>大家在说</span></h3> <ul> <li> <divclass="userPic"><imgsrc="face.gif"/></div> <divclass="content"> <divclass="userName"><ahref="javascript:;">日丶久生情</a>:</div> <divclass="msgInfo">新增Ctrl+Enter快捷键发送广播。</div> <divclass="times"><span>07月05日12:20</span><aclass="del"href="javascript:;">删除</a></div> </div> </li> <li> <divclass="userPic"><imgsrc="face.gif"/></div> <divclass="content"> <divclass="userName"><ahref="javascript:;">日丶久生情</a>:</div> <divclass="msgInfo">新增选择头像功能。</div> <divclass="times"><span>07月05日12:08</span><aclass="del"href="javascript:;">删除</a></div> </div> </li> <li> <divclass="userPic"><imgsrc="face.gif"/></div> <divclass="content"> <divclass="userName"><ahref="javascript:;">日丶久生情</a>:</div> <divclass="msgInfo">增加了记录广播时间的功能。</div> <divclass="times"><span>07月04日16:55</span><aclass="del"href="javascript:;">删除</a></div> </div> </li> </ul> </div> </div> </body> </html>
以上所述就是本文给大家分享的全部内容了,希望大家能够喜欢。