JS-DOM:基础实操---模仿新浪微博的发布

CSS部分

<style>
* { padding: 0; margin: 0; }
li { list-style: none; }
body { background: #f9f9f9; font-size: 14px; }

#box { width: 450px; padding: 10px; border: 1px solid #ccc; background: #f4f4f4; margin: 10px auto; }
#fill_in { margin-bottom: 10px; }
#fill_in li { padding: 5px 0; }
#fill_in .text { width: 380px; height: 30px; padding: 0 10px; border: 1px solid #ccc; line-height: 30px; font-size: 14px; font-family: arial; }
#fill_in textarea { width: 380px; height: 100px; line-height: 20px; padding: 5px 10px; border: 1px solid #ccc; font-size: 14px; font-family: arial; overflow: auto; vertical-align: top; }
#fill_in .btn { border: none; width: 100px; height: 30px; border: 1px solid #ccc; background: #fff; color: #666; font-size: 14px; position: relative; left: 42px; }

#message_text h3 { font-size: 14px; padding: 6px 0 4px 10px; background: #ddd; border-bottom: 1px solid #ccc; }
#message_text li { background: #f9f9f9; border-bottom: 1px solid #ccc; color: #666; overflow: hidden; }
#message_text li a{ float:right;}
#message_text h3 { padding: 10px; font-size: 14px; line-height: 24px; }
#message_text p { padding: 0 10px 10px; text-indent: 28px; line-height: 20px; }
</style>

 

HTML部分

<body>
<div id="box">
    <ul id="fill_in">
        <form>
            <li>姓名:<input id="txt1" type="text" class="text" /></li>
            <li>内容:<textarea id="txt2"></textarea></li>
            <li><input id="btn" type="button" value="提交" class="btn" /></li>
        </form>
    </ul>
    <div id="message_text">
        <h2>显示留言</h2>
        <ul>
            <!-- <li><h3>名字</h3><p>内容<a href="###">删除</a></p></li> -->
        </ul>
    </div>
</div>
</body>

 

 

JS-DOM部分

一、发布时有动画效果:

<script>

function first(obj){

  if(obj.firstElementChild){

    return obj.firstElementChild;

  }else{

    return obj.firstChild;

  }

}

window.onload=function(){

  var oName=document.getElementById("txt1");

  var oCon=document.getElementById("txt2");

  var oBtn=document.getElementById("btn");

  var oUl=document.getElementById("message_text").children[1];

  var timer=null;

  

  oBtn.onclick=function(){

    if(oName.value==""||oCon.value==""){

      alert("用户名或者内容未填写");

      return;

    }

    var oLi=document.createElement("li");

    oLi.innerHTML="<h3>"+oName.value+"</h3><p>"+oCon.value+"<a href=‘###‘>删除</a></p>";

    oName.value="";

    oCon.value="";

 

    oUl.insertBefore(oLi, first(oUl));

    

    var start=0;

    var end=oLi.offsetHeight;

    oLi.style.height=0;

    var change=end-start;

    var t=0;

    var endT=20;

 

    clearInterval(timer);

    timer=setInterval(function(){

      t++;

      if(t==endT){

        clearInterval(timer);

      }

      oLi.style.height=Tween.Bounce.easeOut(t,start,change,endT)+"px";

    },30);

    var oLink=oLi.getElementsByTagName("a")[0];

 

    oLink.onclick=function(){

      var start=oLi.offsetHeight;

      var end=0;

      var change=end-start;

      var t=0;

      var endT=20;

      clearInterval(timer);

      timer=setInterval(function(){

        t++;

        if(t==endT){

          oUl.removeChild(oLi);

          clearInterval(timer);

        }

        oLi.style.height=Tween.Bounce.easeOut(t,start,change,endT)+"px";

      },30)

    }

  }

}

</script>

二、发布时无动画效果:

<script>

function first(obj){

  if(obj.firstElementChild){

    return obj.firstElementChild;

  }else{

    return obj.firstChild; 

  }

}

window.onload=function(){

  var oName=document.getElementById("txt1");

  var oCon=document.getElementById("txt2");

  var oBtn=document.getElementById("btn");

  var oUl=document.getElementById("message_text").children[1];

  

  oBtn.onclick=function(){

    if(oName.value==""||oCon.value==""){

      alert("用户名或者内容没有填写");

      return;

    }

    var oLi=document.createElement("li");

    oLi.innerHTML="<h3>"+oName.value+"</h3><p>"+oCon.value+"<a href=‘###‘>删除</a></p>";

    oName.value="";

    oCon.value="";

    

    oUl.insertBefore(oLi,first(oUl));

 

    var oLink=oLi.getElementsByTagName("a")[0];

     

    oLink.onclick=function(){

       oUl.removeChild(oLi);   

    }

  }

}
</script>

 

JS-DOM:基础实操---模仿新浪微博的发布,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。