如何用纯javascript和html制作手风琴
我想让这个列表像手风琴一样。我必须在纯javascript中这样做,而不使用jQuery或其他外部库。我不允许调整下面显示的HTML代码如何用纯javascript和html制作手风琴,javascript,html,css,Javascript,Html,Css,我想让这个列表像手风琴一样。我必须在纯javascript中这样做,而不使用jQuery或其他外部库。我不允许调整下面显示的HTML代码 <ul class="accordion"> <li><a href="#">Apple</a> <ul> <li><a href="#">abc</a></li>
<ul class="accordion">
<li><a href="#">Apple</a>
<ul>
<li><a href="#">abc</a></li>
<li><a href="#">xyz</a></li>
<li><a href="#">pqr</a></li>
</ul>
</li>
<li><a href="#">Apple1</a></li>
<li><a href="#">Apple2</a></li>
<li><a href="#">Apple3</a></li>
<li><a href="#">Apple4</a></li>
</ul>
-
下面是@Ruud提供的javascript代码,它显示的是手风琴菜单,但没有动画效果。我想要一次只激活一个项目的动画效果
window.getTopUL = function() {
var uls = document.getElementsByTagName('UL');
for (var i = 0; i < uls.length; i++) {
if (uls[i].className == 'accordion') return uls[i];
}
return null;
};
window.getChild = function(li, tag) {
return li.getElementsByTagName(tag)[0];
};
window.toggleDisplay = function(s) {
s.display = s.display == 'none' ? 'block' : 'none';
};
window.setEventHandlers = function(topUL) {
if (topUL) {
var lis = document.getElementsByTagName('LI');
for (var i = 0; i < lis.length; i++) {
var ul = getChild(lis[i], 'UL');
if (ul) {
ul.style.display = 'none';
getChild(lis[i], 'A').onclick = function() {
toggleDisplay(getChild(this.parentNode, 'UL').style);
return false;
}
}
}
}
};
setEventHandlers(getTopUL());
window.gettopl=function(){
var uls=document.getElementsByTagName('UL');
对于(变量i=0;i
window.gettopl=function(){
var uls=document.getElementsByTagName('UL');
对于(变量i=0;i
-
-
-
-
-
-
-
-
您也可以使用简单的html和css来实现
/*清理列表样式*/
手风琴{
列表样式:无;
保证金:0;
填充:0;
}
/*隐藏单选按钮*/
/*这些是允许我们切换内容窗格的功能*/
手风琴标签+输入[type='radio']{
显示:无;
}
/*为每个内容窗格提供一些样式*/
李手风琴{
背景色:#中交;
边框底部:1px实心#DDDDDD;
}
/*使主选项卡看起来更易于单击*/
手风琴标签{
背景色:#666666;
颜色:#FFFFFF;
显示:块;
填充:10px;
}
手风琴标签:悬停{
光标:指针;
}
/*设置将显示和隐藏的div*/
手风琴部分内容{
溢出:隐藏;
填充:0 10px;
显示:无;
}
/*选中单选按钮时显示内容框*/
手风琴标签+输入[type='radio']:选中+分类内容{
显示:块;
}
-
内容窗格1
要显示的内容
-
内容窗格2
要显示的内容
-
内容窗格3
要显示的内容
-
内容窗格4
要显示的内容
-
内容窗格5
要显示的内容
您也可以使用简单的html和css来实现
/*清理列表样式*/
手风琴{
列表样式:无;
保证金:0;
填充:0;
}
/*隐藏单选按钮*/
/*这些是允许我们切换内容窗格的功能*/
手风琴标签+输入[type='radio']{
显示:无;
}
/*为每个内容窗格提供一些样式*/
李手风琴{
背景色:#中交;
边框底部:1px实心#DDDDDD;
}
/*使主选项卡看起来更易于单击*/
手风琴标签{
背景色:#666666;
颜色:#FFFFFF;
显示:块;
填充:10px;
}
手风琴标签:悬停{
光标:指针;
}
/*设置将显示和隐藏的div*/
手风琴部分内容{
溢出:隐藏;
填充:0 10px;
显示:无;
}
/*选中单选按钮时显示内容框*/
手风琴标签+输入[type='radio']:选中+分类内容{
显示:块;
}
-
内容窗格1
要显示的内容
-
内容窗格2
要显示的内容
-
内容窗格3
要显示的内容
-
内容窗格4
要显示的内容
-
内容窗格5
要显示的内容
您也可以使用简单的html和css来实现
/*清理列表样式*/
手风琴{
列表样式:无;
保证金:0;
填充:0;
}
/*隐藏单选按钮*/
/*这些是wh