Javascript 垂直滑动伸缩菜单

Javascript 垂直滑动伸缩菜单



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="author" content="Pony" />
<title>垂直滑动伸缩菜单</title>
<style type="text/css">
/*不同的菜单可以应用不同的样式*/
.container{ float:left; margin:10px; width:200px; border:2px solid red; }
.container1{ float:left; margin:10px; width:200px; border:2px solid blue; }
.container2{ float:left; margin:10px; width:200px; border:2px solid green; }
.toggleblock1{ overflow:hidden; color:red; }
.toggletitle1{ margin:0; padding:5px; color:blue; }
.toggletitle1 span{ float:right; cursor:pointer; }
.toggleblock2{ overflow:hidden; background:#ddd; color:blue; }
.toggletitle2{ margin:0; padding:5px; color:green; }
.toggletitle2 span{ float:right; cursor:pointer; }
/* 以下CSS为满足效果需要的最少代码,可以在此基础上扩充但不能缩减 */
.toggleblock{ overflow:hidden; }
.toggletitle{ margin:0; padding:5px; }
.toggletitle span{ float:right; cursor:pointer; }
</style>
</head>
<body>
<div id="test" class="container">
<div class="toggleblock">
<h4 class="toggletitle"><span>-</span>栏目标题一</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock">
<h4 class="toggletitle"><span>-</span>栏目标题二</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock">
<h4 class="toggletitle"><span>-</span>栏目标题三</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
</div>
<div id="test1" class="container1">
<div class="toggleblock1">
<h4 class="toggletitle1"><span>-</span>栏目标题一</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock1">
<h4 class="toggletitle1"><span>-</span>栏目标题二</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock1">
<h4 class="toggletitle1"><span>-</span>栏目标题三</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
</div>
<div id="test2" class="container2">
<div class="toggleblock2">
<h4 class="toggletitle2"><span>-</span>栏目标题一</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock2">
<h4 class="toggletitle2"><span>-</span>栏目标题二</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
<div class="toggleblock2">
<h4 class="toggletitle2"><span>-</span>栏目标题三</h4>
<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
</div>
</div>
<script type="text/javascript">
function getElementsByClassName(id,cls){
var o=document.getElementById(id);
var aelem=[],
oaelem=o.getElementsByTagName("*");
for(var i=0;i<oaelem.length;i++){
if (oaelem[i].className==cls ){
aelem[aelem.length]=oaelem[i];
}
}
return aelem;
}
function slideshow(obj){
//标题对象
var otitle=obj.getElementsByTagName("h4")[0];
//待伸缩的层对象
var oblock=obj.getElementsByTagName("div")[0];
//触发链接对象
var olink=otitle.firstChild;
//整个菜单的高度
var i=obj.offsetHeight;
if(i<(otitle.offsetHeight+oblock.offsetHeight)){
i+=10;
obj.style.height=i+"px";
}else{
clearInterval(t);
olink.οnclick=function(){t2=setInterval(function(){slidehidden(obj)},10)}
//这里放图片文字都行
olink.innerHTML="-";
}
}
function slidehidden(obj){
//标题对象
var otitle=obj.getElementsByTagName("h4")[0];
//待伸缩的层对象
var oblock=obj.getElementsByTagName("div")[0];
//触发链接对象
var olink=otitle.firstChild;
//整个菜单的高度
var i=obj.offsetHeight
if(i>otitle.offsetHeight){
i-=10;
obj.style.height=i+"px";
}else{
clearInterval(t2);
olink.οnclick=function(){t=setInterval(function(){slideshow(obj)},10)}
//这里放图片文字都行
olink.innerHTML="+";
}
}
//第一个参数是菜单BLOCK的ID名,第二个参数是每一个菜单项目的CLASS名,不同的菜单样式可以不同
var a=getElementsByClassName("test","toggleblock");
var b=getElementsByClassName("test1","toggleblock1");
var c=getElementsByClassName("test2","toggleblock2");
//如果需要添加菜单,添加以下项目即可,同时增加数组duality
//var d=getElementsByClassName("test3","toggleblock3");
var duality=[a,b,c]
for(var m=0;m<duality.length;m++){
for(var n=0;n<duality[m].length;n++){
var olink=duality[m][n].getElementsByTagName("h4")[0].firstChild;
olink.οnclick=new Function("t2=setInterval(function(){slidehidden(duality["+m+"]["+n+"])},10)");
}
}
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="author" content="Pony" />
<title>垂直滑动伸缩菜单</title>
<style type="text/css">
/*不同的菜单可以应用不同的样式*/
.container{ float:left; margin:10px; width:200px; border:2px solid red; }
.container1{ float:left; margin:10px; width:200px; border:2px solid blue; }
.container2{ float:left; margin:10px; width:200px; border:2px solid green; }
.toggleblock1{ overflow:hidden; color:red; }
.toggletitle1{ margin:0; padding:5px; color:blue; }
.toggletitle1 span{ float:right; cursor:pointer; }
.toggleblock2{ overflow:hidden; background:#ddd; color:blue; }
.toggletitle2{ margin:0; padding:5px; color:green; }
.toggletitle2 span{ float:right; cursor:pointer; }
/* 以下CSS为满足效果需要的最少代码,可以在此基础上扩充但不能缩减 */
.toggleblock{ overflow:hidden; }
.toggletitle{ margin:0; padding:5px; }
.toggletitle span{ float:right; cursor:pointer; }
</style>
</head>
<body>
<div id="test" class="container">
	<div class="toggleblock">
		<h4 class="toggletitle"><span>-</span>栏目标题一</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock">
		<h4 class="toggletitle"><span>-</span>栏目标题二</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock">
		<h4 class="toggletitle"><span>-</span>栏目标题三</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
</div>
<div id="test1" class="container1">
	<div class="toggleblock1">
		<h4 class="toggletitle1"><span>-</span>栏目标题一</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock1">
		<h4 class="toggletitle1"><span>-</span>栏目标题二</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock1">
		<h4 class="toggletitle1"><span>-</span>栏目标题三</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
</div>
<div id="test2" class="container2">
	<div class="toggleblock2">
		<h4 class="toggletitle2"><span>-</span>栏目标题一</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock2">
		<h4 class="toggletitle2"><span>-</span>栏目标题二</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
	<div class="toggleblock2">
		<h4 class="toggletitle2"><span>-</span>栏目标题三</h4>
		<div>字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</div>
	</div>
</div>
<script type="text/javascript">
function getElementsByClassName(id,cls){
	var o=document.getElementById(id);
	var aelem=[],
	oaelem=o.getElementsByTagName("*");
	for(var i=0;i<oaelem.length;i++){
		if (oaelem[i].className==cls ){
			aelem[aelem.length]=oaelem[i];
		}
	}
	return aelem;
}
function slideshow(obj){
	//标题对象
	var otitle=obj.getElementsByTagName("h4")[0];
	//待伸缩的层对象
	var oblock=obj.getElementsByTagName("div")[0];
	//触发链接对象
	var olink=otitle.firstChild;
	//整个菜单的高度
	var i=obj.offsetHeight;
	if(i<(otitle.offsetHeight+oblock.offsetHeight)){
		i+=10;
		obj.style.height=i+"px";
	}else{
		clearInterval(t);
		olink.οnclick=function(){t2=setInterval(function(){slidehidden(obj)},10)}
		//这里放图片文字都行
		olink.innerHTML="-";
	}
}
function slidehidden(obj){
	//标题对象
	var otitle=obj.getElementsByTagName("h4")[0];
	//待伸缩的层对象
	var oblock=obj.getElementsByTagName("div")[0];
	//触发链接对象
	var olink=otitle.firstChild;
	//整个菜单的高度
	var i=obj.offsetHeight
	if(i>otitle.offsetHeight){
		i-=10;
		obj.style.height=i+"px";
	}else{
		clearInterval(t2);
		olink.οnclick=function(){t=setInterval(function(){slideshow(obj)},10)}
		//这里放图片文字都行
		olink.innerHTML="+";
	}
}
//第一个参数是菜单BLOCK的ID名,第二个参数是每一个菜单项目的CLASS名,不同的菜单样式可以不同
var a=getElementsByClassName("test","toggleblock");
var b=getElementsByClassName("test1","toggleblock1");
var c=getElementsByClassName("test2","toggleblock2");
//如果需要添加菜单,添加以下项目即可,同时增加数组duality
//var d=getElementsByClassName("test3","toggleblock3");
var duality=[a,b,c]
for(var m=0;m<duality.length;m++){
	for(var n=0;n<duality[m].length;n++){
		var olink=duality[m][n].getElementsByTagName("h4")[0].firstChild;
		olink.οnclick=new Function("t2=setInterval(function(){slidehidden(duality["+m+"]["+n+"])},10)");
	}
}
</script>
</body>
</html>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值