内容收起、展开的JS代码javascript

/ / 2016-01-29   阅读:2493
演示效果: 特效说明: 内容收起、展开的JS特效代码,利用层来实现本效果,目前应用广泛,默认只显示三行内容,点击“展开”后会显示更多,再次点击会收缩,挺实用的代码。 实现代码: ...

演示效果:


特效说明:
内容收起、展开的JS特效代码,利用层来实现本效果,目前应用广泛,默认只显示三行内容,点击“展开”后会显示更多,再次点击会收缩,挺实用的代码。

实现代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>内容收起、展开的JS特效代码</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Sheneyan" />
<script type="text/javascript">
window.onload = function ()
{
var aDiv = document.getElementsByTagName("div");
var i = 0;

for (i = 0; i < aDiv.length; i++)
{
(function ()
{
var oDiv = aDiv[i];
var oH5 = oDiv.getElementsByTagName("h5")[0];
var aP = oDiv.getElementsByTagName("p");
var iHeight = oH5.offsetHeight + aP[0].offsetHeight * aP.length;
var iLimitH = oH5.offsetHeight + aP[0].offsetHeight * 3;
var bShow = false;
if (aP.length > 3)
{
oDiv.style.height = iLimitH + "px";
oH5.innerHTML = "展开↓";
}
else
{
oH5.innerHTML = "收起↑"
}
oH5.onclick = function ()
{
bShow = !bShow;
doMove(oDiv, bShow ? iHeight : iLimitH);
oH5.innerHTML = bShow ? "收起↑" : "展开↓"
};
})()
}

function doMove(obj, iTarget, callback)
{
clearInterval(obj.timer);
obj.timer = setInterval(function ()
{
var iSpeed = (iTarget - obj.offsetHeight) / 5;
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
iTarget == obj.offsetHeight ? (clearInterval(obj.timer), callback && callback()) : obj.style.height = iSpeed + obj.offsetHeight + "px"
}, 30)
}
}
</script>
<style type="text/css">
div.xx{border:solid 1px;overflow:hidden;}
div p{margin:0;line-height:50px;}
div.xx h5{border:solid 1px;border-width:0 0 1px;padding:0;margin:0;height:30px;line-height:30px;cursor:pointer;background:#eee;}
</style>
</head>
<body>
<div class="xx"><h5>收起</h5>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
</div>
<div class="xx"><h5>收起</h5>
<p>内容</p>
<p>内容</p>
<p>内容</p>
<p>内容</p>
</div>
</body>
</html>

我要评论

昵称:
验证码:

最新评论

共0条 共0页 10条/页 首页 上一页 下一页 尾页
意见反馈