标题 | js实现类似新浪微博首页内容渐显效果的方法 |
内容 | 要点一: if(list_li.length>=1){ list.insertbefore(li,list_li[0]); }else{ list.appendchild(li); } 从在前面插入新内容,如果没有新内容,就是在后面插入新内容。 要点二: var height=li.offsetheight; li.style.height='0'; 取得li的高度,然后再li的高度设置为0,因为高度的变化是从0到现有高度。 要点三: startrun(li,height,height,function(){ startrun(li,opacity,100); }) 先是高度变化,再是透明度变化 最后,上代码: <!doctype html> <html> <head> <meta charset=gb2312 /> <title>无标题文档</title> <style> <!-- body,ul,li{margin:0; padding:0; font:12px/1.5 arial;} #list{width:400px; margin:10px auto;} #list li{list-style:none; padding:5px 0 ; overflow:hidden; border-bottom:1px dotted #ccc; filter:alpha(opacity:0); opacity:0; vertical-align:middle;} --> </style> <script> <!-- window.onload = function(){ var btn = document.getelementbyid(btn); var con = document.getelementbyid(con); var list = document.getelementbyid(list); var list_li = list.getelementsbytagname(li); btn.onclick = function(){ var li = document.createelement(li); li.innerhtml = con.value; con.value=''; if(list_li.length>=1){ list.insertbefore(li,list_li[0]); }else{ list.appendchild(li); } var height=li.offsetheight; li.style.height='0'; startrun(li,height,height,function(){ startrun(li,opacity,100); }) } } function getstyle(obj,name){ if(obj.currentstyle){ return obj.currentstyle[name]; }else{ return getcomputedstyle(obj,false)[name]; } } function startrun(obj,attr,target,fn){ clearinterval(obj.timer); obj.timer = setinterval(function(){ var cur = 0; if(attr == opacity){ cur = math.round(parsefloat(getstyle(obj,attr))*100); }else{ cur = parseint(getstyle(obj,attr)); } var speed = (target-cur)/8; speed = speed>0?math.ceil(speed):math.floor(speed); if(cur == target){ clearinterval(obj.timer); if(fn){ fn(); } }else{ if(attr == opacity){ obj.style.filter = alpha(opacity=+(cur+speed)+); obj.style.opacity = (cur+speed)/100; }else{ obj.style[attr] = cur + speed + px; } } },30) } //--> </script> </head> <body> <textarea id=con cols=50 rows=5></textarea> <input id=btn name= type=button value=发布> <ul id=list> </ul> </body> </html> |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。