如何实现手风琴折叠页面效果

具体的业务需求是这样的,加载页面时很普通的一个基础信息页面,当选中人员类别时,根据选中的结果会相应的出现折叠页面,比如说下拉框中有三个选项1,2,3,选中2时页面会多出一部分页面,当选中其他选项时,该处页面又会折叠回去,隐藏不显示,整个页面的效果很像手风琴,展开再折叠再展开,所以称之为手风琴折叠页面.

今天我们就来具体说一下实现的流程.首先前台页面的js函数:

           function showAccordionDiv(){
	        //取到对应属性的value值
		var sTypeValue = $("#SType").find("option:selected").text();
		//取到对应属性的key值
		var sTypeCode = $("#SType").val();   

		if(sTypeCode == 2){

			var htmlDiv = "";
			htmlDiv += '<div class="main_content_bg" id="showOutCauseDivId">';
			htmlDiv += '<div class="main_content_title"><a id="lblTitle">AAAA</a></div>';
			htmlDiv += '<div class="main_top_bg">';
			htmlDiv += '<div id="employQuery">';
			htmlDiv += '<table width="100%" border="0" cellspacing="1" cellpadding="0" class="module_table_bg"><tr>';

			htmlDiv += '<td class="content_title_right" width="10%">BBBB</td>';
			htmlDiv += '<td class="content_content" width="40%">';
			htmlDiv += '<input type="text" hidden="hidden" value="${personRetireInfo.SGuid }" 

name="personRetireInfo.SGuid" id="SGuid" class="content_content_input"/>';
			htmlDiv += '<input type="text" hidden="hidden" value="${personRetireInfo.SPersonGuid }" 

name="personRetireInfo.SPersonGuid" id="SPersonGuid" class="content_content_input"/>';
			htmlDiv += '<input type="text" value="${personRetireInfo.SDocGuid }" name="personRetireInfo.SDocGuid" 

id="SDocGuid" class="content_content_input"/></td>';

			htmlDiv += '<td class="content_title_right">CCCC</td>';
			htmlDiv += '<td class="content_content" >';
			htmlDiv += '<select id="isEarlierRetire" class="content_content_select" 

name="personRetireInfo.isEarlierRetire">';
			htmlDiv += '<zw:basedictlist itemCode="2007" selectValue="${personRetireInfo.isEarlierRetire 

}"></zw:basedictlist>';
			htmlDiv += '</select></td></tr><tr>';

			htmlDiv += '<td class="content_title_right">DDDDD</td>';
			htmlDiv += '<td class="content_content">';
			htmlDiv += '<select id="SRetireType" class="content_content_select" name="personRetireInfo.SRetireType" 

style="width: 70%;">';
			htmlDiv += '<zw:basedictlist itemCode="133" selectValue="${personRetireInfo.SRetireType 

}"></zw:basedictlist>';
			htmlDiv += '</select>';

			htmlDiv += '<td class="content_title_right"></td>';
			htmlDiv += '<td class="content_content" >';
			htmlDiv += '</td>';

			htmlDiv += '</td></tr><tr>';
			htmlDiv += '<td class="content_title_right">EEEE</td>';
			htmlDiv += '<td class="content_content" colspan="3">';
			htmlDiv += '<input id="DRetireDate" type="text" readonly="readonly" name="personRetireInfo.DRetireDate" class="Wdatelong" onfocus="WdatePicker()" value="<fmt:formatDate value="${personRetireInfo.DRetireDate}" pattern="yyyy-MM-dd"/>"/></td></tr><tr>';

			htmlDiv += '<td class="content_title_right">FFFF</td>';
			htmlDiv += '<td class="content_content">';
			htmlDiv += '<input type="text" id="SWorkingAge" name="personRetireInfo.SWorkingAge" size="42" maxlength="40" value="${personRetireInfo.SWorkingAge }" class="content_content_input"/>';

			htmlDiv += '<td class="content_title_right">GGGG</td>';
			htmlDiv += '<td class="content_content">';
			htmlDiv += '<input type="text" name="personRetireInfo.SContinueWorkingAge" size="42" maxlength="40" value="${personRetireInfo.SContinueWorkingAge }" class="content_content_input"/>';
			htmlDiv += '</td></tr><tr>';

			htmlDiv += '<td class="content_title_right">HHHH</td>';
			htmlDiv += '<td class="content_content">';
			htmlDiv += '<input id="DDieDate" type="text" readonly="readonly" name="personRetireInfo.DDieDate" class="Wdatelong" onfocus="WdatePicker()" value="<fmt:formatDate value="${personRetireInfo.DDieDate}" pattern="yyyy-MM-dd"/>"/></td>';	

			htmlDiv += '<td class="content_title_right">IIII</td>';
			htmlDiv += '<td class="content_content">';
			htmlDiv += '<select id="SEndDate" class="content_content_select" name="personRetireInfo.SEndDate">';
			htmlDiv += '<zw:basedictlist itemCode="134" selectValue="${personRetireInfo.SEndDate }"></zw:basedictlist>';
			htmlDiv += '</select></td></tr><tr>';

			htmlDiv += '<td class="content_title_right">JJJJ</td>';
			htmlDiv += '<td class="content_content" colspan="3">';
			htmlDiv += '<input id="SRetirePlace" type="text" value="${personRetireInfo.SRetirePlace }" name="personRetireInfo.SRetirePlace" size="42" maxlength="40" value="" class="content_content_input" style="width: 40%;" /></td></tr>';
			htmlDiv += '</table></div></div></div>';

			$("#otherDiv").append(htmlDiv);
		}else{
			$("#showAccordionDivId").remove();
		}
	}

在html标签中响应js函数:

<span style="font-size:14px;"><td class="content_title_right">选中哪个:</td>
<td class="content_content">
    <select id="SPersonType" name="personBaseInfo.SPersonType" class="content_content_select" onchange="showAccordionDiv();" >
        <zw:basedictlist itemCode="<%=Constants.S_PERSON_TYPE %>" selectValue="${personBaseInfo.SPersonType}"></zw:basedictlist>	<c:if test="${personBaseInfo.SPersonType=='2'}">
            <script type="text/javascript">
                showAccordionDiv();
            </script>
        </c:if>
    </select>
</td></span>

这样,我们就可以通过拼页面的形式来加载出手风琴的效果,是不是很神奇?其实整个过程的实现流程非常简单,关键点在于拼js函数拼页面时,外层都是单引号,内层才是双引号,你可以先在页面中写出你要的样式,然后真个复制进js函数中,再用双引号和单引号分别装饰好,就可以很容易的出现你想要的效果了,然后在html标签中加一个onchange事件响应.我之所以在下面还加了一个jstl表达式的c:if判断,是当页面加载时,如果下拉框中已经加载了响应的值,则调用我们写的js函数,你看懂了吗?赶快动手尝试一下吧!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-14 00:15:18

如何实现手风琴折叠页面效果的相关文章

javascript实现的手风琴折叠菜单效果

演示地址:http://codepen.io/anon/pen/pJERMq 实现效果: HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>手风琴效果</title> </head> <body> <div class="main">

jQuery&amp;HTML&amp;CSS3实现垂直手风琴折叠菜单方法讲解

在网页制作中我们常常需要折叠式的菜单,在折叠菜单中,手风琴特效的菜单是非常受欢迎,下面就讲解使用jQuery+HTML+CSS3实现垂直手风琴折叠菜单的方法. jQuery实现垂直手风琴折叠菜单示例代码 首先给出手风琴折叠菜单的HTML代码,如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS3垂直手风琴折叠菜单DEMO演示</titl

cnblogs页面效果体验

该页面仅用于测试页面效果使用,内容请自动忽视  1.链接地址012.链接地址023.链接地址034.链接地址045.链接地址05 JavaDemo.java package fileTestDemo; import java.io.File; import java.io.FilenameFilter; public class FileTestDemo { public static void main(String[] args) { File fileDemo = new File("E:

JavaScript网站设计实践(一)网站结构以及页面效果设计

原文:JavaScript网站设计实践(一)网站结构以及页面效果设计 这是JavaScript DOM编程艺术里的构建JavaScript网站设计的例子,这本书给我学习JavaScript带来许多启发,在这个乐队宣传网站中,把前面学到的知识点整合在这个项目了.在这里记录下实现这个乐队的宣传网站的具体过程,加深理解.好,从现在开始来实现这个JavaScript网站实战. 一.网页的结构 由三个部分组成:头部.导航.内容 效果图是这样的(勉强看,有点不美观.哈哈): 二.网站的的结构 这是我的项目目

一款基于jquery的手风琴图片展示效果

今天要给大家分享一款基于jquery的手风琴图片展示效果.这款图片的展示效果鼠标经过前是灰色的,当鼠标经过时图片变大且变为彩色.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="page-container"> <div class="flex-container"> <div class="country netherlands"> <div> Nethe

iOS开发之剖析&quot;秘密&quot;App内容页面效果(二)

@前些天写了一篇"秘密"的Cell效果文章,但是与在工作中想要的效果还是有差距,而且扩展性很不好,于是重写封装,把整体视图都放到scrollView中,基本是和secret app 一模一样的效果了. @代码如下:(模糊效果的类就不写了,大家可以搜"UIImage+ImageEffects",还要导入Accelerate.framework) 1.MTSecretAppEffect.h #import <Foundation/Foundation.h>

cordova StatusBar插件的使用(设置手机状态栏颜色和页面头部颜色一致),做出和原生一样的页面效果体验

cordova StatusBar插件的使用(设置手机状态栏颜色和页面头部颜色一致),做出和原生一样的页面效果体验设置设备状态栏背景颜色 StatusBar.backgroundColorByHexString('#11c1f3')://设置数值类型 StatusBar.backgroundColorByName("white"); //设置名称类型 可以去参考 StatusBar插件的js源代码,里面很多设置方法. var namedColors = {    "black

iOS开发之剖析&quot;秘密&quot;App内容页面效果

最近在玩"秘密",发现点击主界面的Cell进去后的页面效果不错,就写了个Demo来演示下. 它主要效果:下拉头部视图放大,上拉视图模糊而且到一定位置固定不动,其他Cell可以继续上移. @封装的主要效果类:MTHeadEffect.m(.h文件省略,很简单的) #import "MTHeadEffect.h" #import <QuartzCore/QuartzCore.h> #import <Accelerate/Accelerate.h>

jQuery oLoader实现的加载图片和页面效果

oLoader使用方法 不管是oLoader还是oPageLoader都是基于jQuery,所以调用前请先加载jquery库,作者已经将两个插件集成到一起:jquery.oLoader.min.js,已经打包好请戳源码下载. 调用jQuery oLoader非常简单,一句话如下: [js] view plaincopy $('#element').oLoader(); 使用oLoader加载图片: [js] view plaincopy $(function(){ $('img').oLoade