在JS前台效果的实现中,我们经常会遇见要实现手风琴的样式,如果用一些控件的话可能显示效果反倒会不太好,这里介绍一种手风琴样式的展现方法
静态页面如下:
<table width="151" height="100%" border="1" cellpadding="1" cellspacing="1" style="font-size: 12px">
<tr οnclick="showClass('class1')"><td class="classDiv" >一</td></tr>
<tr class="class1">
<td class="appDiv">1</td>
</tr>
<tr class="class1">
<td class="appDiv">2</td>
</tr>
<tr class="class1">
<td class="appDiv">3</td>
</tr>
<tr οnclick="showClass('class2')"><td class="classDiv" >二</td></tr>
<tr class="class2">
<td class="appDiv">4</td>
</tr>
<tr class="class2">
<td class="appDiv">5</td>
</tr>
<tr class="class2">
<td class="appDiv">6</td>
</tr>
<tr class="class2">
<td class="appDiv">7</td>
</tr>
<tr οnclick="showClass('class3')"><td class="classDiv" >三</td></tr>
<tr class="class3">
<td class="appDiv">8</td>
</tr>
<tr class="class3">
<td class="appDiv">9</td>
</tr>
<tr οnclick="showClass('class4')"><td class="classDiv" >四</td></tr>
<tr class="class4">
<td class="appDiv">10</td>
</tr>
<tr class="class4">
<td class="appDiv">11</td>
</tr>
<tr class="class4">
<td class="appDiv">12</td>
</tr>
<tr οnclick="showClass('class5')"><td class="classDiv">五</td></tr>
<tr class="class5">
<td class="appDiv">501</td>
</tr>
<tr class="class5">
<td class="appDiv">502</td>
</tr>
</table>
JS代码如下:
/**
* Description:展示当前用户点击的业务类
* Author: roger
* Email:
* Version: 1
* @param: type:当前用户点击的类名
**/
var oldtype = "";//标记上一次选择的类别
function showClass(type){
hideTR(5);//隐藏所有的类别
$("tr.classmanage").hide();
if(type==oldtype){//判断当前选择的类别是否和上一次选择的类别相同
type = "";//若相同则将oldtype置空,影藏所有类别,以保证下一次点击使是一个新的开始
}else{
$("tr."+type).show();//若当前选择类别与上一次不同,则显示
}
oldtype = type;//显示完后将当前选择的类别记录为上一次选择的类别
}
/**
* Description:隐藏所有业务
* Author: roger
* Email:
* Version: 1
* @param: num:业务数
**/
function hideTR(num){
var trClass = "tr.class";
for(var i=1;i<=num;i++){
trClass = "tr.class";
trClass = trClass+i;
$(trClass).hide();
}
}