无刷新留言demo

来源:luqidong 发布时间:2014-02-19 20:59:53 点击数:
实现原理:
每次去往留言显示区域去插入一条留言。每次插入都去创建相应的标签。样式是之前写好的class。
案例图片
78OA办公系统
核心源码:
js:
 
<script type="text/javascript">
 
var oBtn = null;
var oForm = null;
var oText = null;
var oTextarea = null;
var timer = null;
var speed = 0;
var oLi = null
var oH3 = null;
var oP = null;
 
window.onload = function()
{
oBtn = document.getElementById("btn");
oBtn.onclick = getValue;
};
 
function getValue()
{
document.getElementById("message_text").style.display = "block";
 
oForm = document.getElementsByTagName("form")[0];
oText = document.getElementById("text");
oTextarea = document.getElementsByTagName("textarea")[0];
oUl = document.getElementById("message_text").getElementsByTagName("ul")[0];
 
oForm.onsubmit = function(){ return false; };
 
// 火狐下不兼容
if( oText.value == "" || oTextarea.value == "" )
{
alert("就二个框,你还不写全了啊?");
return;
}
 
oLi = document.createElement("li");
oH3 = document.createElement("h3");
oP = document.createElement("p");
 
oH3.innerHTML = oText.value;
oP.innerHTML = oTextarea.value;
 
if(oUl.childNodes[0])
{
oUl.insertBefore(oLi,oUl.childNodes[0]);
}
else
{
oUl.appendChild(oLi);
}
oLi.appendChild(oH3);
oLi.appendChild(oP);
 
oText.value = "";
oTextarea.value = "";
 
var h = oLi.offsetHeight;
oLi.style.height = '0px';
 
if(timer)
{
clearInterval(timer);
}
timer = setInterval("goTime("+h+")", 35);
goTime(h);
}
 
function goTime(target)
{
var top = oLi.offsetHeight;
speed += 3;
top += speed;
 
if(top > target)
{
top = target;
speed *= -0.7;
}
 
if(top===target && Math.abs(speed) < 3)
{
clearInterval(timer);
timer = null;
oLi.style.height = target + "px";
}
oLi.style.height = top + "px";
}
html:
 
<div id="box">
    <ul id="fill_in">
        <form>
            <li>姓名:<input id="text" type="text" class="text" /></li>
            <li>内容:<textarea></textarea></li>
            <li><input id="btn" type="submit" value="提交" class="btn" /></li>
        </form>
    </ul>
    <div id="message_text">
        <h2>显示留言</h2>
        <ul></ul>
    </div>
本文由免费oa系统78oa原创,转载请注明出处。