A5下载文章资讯

分类分类

Js实现无刷新删除内容

2015-04-29 14:05作者:zhao

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.55b8b4f53;}

#msgBox{width:500px;background:#fff;border-radius:5px;margin:10pxauto;padding-top:10px;}

#msgBoxformh2{font-weight:400;font:40018px/1.55fae8f6f96c59ed1;}

#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("u8bf7u586bu5199u60a8u7684u59d3u540d");

oUserName.focus()

}

elseif(!/^[u4e00-u9fa5w]{2,8}$/g.test(oUserName.value))

{

alert("u59d3u540du75312-8u4f4du5b57u6bcdu3001u6570u5b57u3001u4e0bu5212u7ebfu3001u6c49u5b57u7ec4u6210uff01");

oUserName.focus()

}

elseif(reg.test(oConBox.value))

{

alert("u968fu4fbfu8bf4u70b9u4ec0u4e48u5427uff01");

oConBox.focus()

}

elseif(!bSend)

{

alert("u4f60u8f93u5165u7684u5185u5bb9u5df2u8d85u51fau9650u5236uff0cu8bf7u68c0u67e5uff01");

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:;">u5220u9664</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="u8fd8u80fdu8f93u5165",bSend=true):(css(oMaxNum,"color","#f60"),

oCountTxt.innerHTML="u5df2u8d85u51fa",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>

以上所述就是本文给大家分享的全部内容了,希望大家能够喜欢。

展开全部

相关

说两句网友评论
    我要跟贴
    取消