大神在线等,请问如何以html实现点击显示隐藏下拉内容。
1个回答
展开全部
挺简单的 看代码 html的。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS隐藏/显示</title>
<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{ width:500px;border:solid 1px;overflow:hidden;}
div p{margin:0;line-height:30px;}
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>
</div>
</body>
</html>
更多追问追答
追问
你好,,,我上次找到过。没有这么复杂,我是插在一个文本编辑器里面。这个使用了script,文本编辑器不支持!
追答
如果要放在文本编辑器中,那就把JS部分修改为外部调用,编辑器中就放div部分的代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询