Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用纯javascript和html制作手风琴_Javascript_Html_Css - Fatal编程技术网

如何用纯javascript和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>

我想让这个列表像手风琴一样。我必须在纯javascript中这样做,而不使用jQuery或其他外部库。我不允许调整下面显示的HTML代码

<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