[英]Little folding triangles: how can I create collapsible sections on a webpage?
某些网页具有可折叠子菜单的“转向”三角形控件。 我想要相同的行为,但要针对表单中的部分。
假设我的表格有放款人,姓名,地址和城市信息。 我网站的某些用户将需要第二组这些字段。 我想为大多数用户隐藏额外的字段。 那些需要额外字段的用户应该能够一键访问它们。 我该怎么做?
嗯,我想您的意思是您想在表单上包含可折叠的部分。
简而言之:
这是一个更好的解释: 如何使用Javascript和CSS创建可折叠的DIV [ 更新2013-01-27,该文章不再在Web上提供,您可以参考此HTML页面的源代码以获取受本文启发的应用示例。 ]
或者,如果您使用诸如“ CSS折叠部分”之类的词进行Google搜索,您会发现许多其他教程,包括超级教程(例如http://xtractpro.com/articles/Animated-Collapsible-Panel.aspx )。
使用JavaScript隐藏/显示元素的最基本方法就是设置元素的visible属性。
以您的示例为例,假设您在页面上定义了以下表单:
<form id="form1">
<fieldset id="lenderInfo">
<legend>Primary Lender</legend>
<label for="lenderName">Name</label>
<input id="lenderName" type="text" />
<br />
<label for="lenderAddress">Address</label>
<input id="lenderAddress" type="text" />
</fieldset>
<a href="#" onclick="showElement('secondaryLenderInfo');">Add Lender</a>
<fieldset id="secondaryLenderInfo" style="visibility:hidden;">
<legend>Secondary Lender</legend>
<label for="secondaryLenderName">Name</label>
<input id="secondaryLenderName" type="text" />
<br />
<label for="secondaryLenderAddress">Address</label>
<input id="secondaryLenderAddress" type="text" />
</fieldset>
</form>
这里有两件事要注意:
showElement()
将元素id作为参数,如下所示:
function showElement(strElem) {
var oElem = document.getElementById(strElem);
oElem.style.visibility = "visible";
return false;
}
几乎每种JavaScript方法都会在后台进行此操作,但是我建议您使用一个框架,将实现细节隐藏起来。 看一下JQuery和JQuery UI ,以便在隐藏/显示元素时获得更加优美的过渡。
这是使用复选框的简单的css only解决方案:
.hideNext:not(:checked)+div { max-height: 0; overflow: hidden; }
<label for="ch1">More Options</label><input id="ch1" type="checkbox" class="hideNext" /> <div>Whatever you want to hide.</div> and then more stuff below..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.