Javascript 扩展UL的过渡效应

Javascript 扩展UL的过渡效应,javascript,html,css,transition,Javascript,Html,Css,Transition,如何在此扩展列表中添加过渡效果 <div class="container"> <div class="outerBG"> <div class="innerBG"> <h2 class="info">&#10148; Show text</h2> <ul id="infoContent" style="display:none">

如何在此扩展列表中添加过渡效果

<div class="container">
    <div class="outerBG"> 
        <div class="innerBG">
            <h2 class="info">&#10148; Show text</h2>
            <ul id="infoContent" style="display:none">
                <li>TEST 1 TEST 1 TEST 1 TEST 1</li>
                <li>TEST 2 TEST 2 TEST 2 TEST 2</li>              
            </ul>
        </div>
    </div>
</div>
有可能从中产生过渡效果吗


jsiddle:

您想要添加一个过渡到
最大高度的转换,并切换该转换,而不是
显示。原因是
display
不是序数值,因此无法设置动画,因为无法插值过渡值<代码>最大高度
是顺序的,因此可以转换

记住这一点,重要的是要注意,
max height
的“show”值应足以容纳内容,否则过渡将拉长。它也比在
高度上设置动画要好,因为不需要已知值,高度只会增长到所需的高度

var infoContent=document.getElementById(“infoContent”);
var info=document.querySelector(“.info”);
函数expand(){//在maxHeight上执行此操作不显示
infoContent.style.maxHeight=infoContent.style.maxHeight?0:'100px';
}
info.addEventListener(“单击”,展开,false)
.innerBG{
宽度:260px;
边距:0自动0自动;
溢出:自动;
}
奥特伯格先生{
宽度:260px;
背景色:#4f322a;
保证金:15px自动25px自动;
边界半径:15px;
溢出:自动;
}
.集装箱{
宽度:100%;
背景色:#70463a;
溢出:自动;
}
.innerBG h2{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容李{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容{
最大高度:0;/*默认情况下折叠*/

溢出:隐藏;/*您希望添加到
最大高度的转换,并切换该转换,而不是
显示
。原因是
显示
不是序数值,因此无法设置动画,因为无法内插转换值。
最大高度
是序数,因此可以转换

记住这一点,重要的是要注意,
max height
的“show”值应该足以容纳内容,否则过渡会拉长。这也比在
height
上设置动画要好,因为不需要已知值,高度只会增长到所需的高度

var infoContent=document.getElementById(“infoContent”);
var info=document.querySelector(“.info”);
函数expand(){//在maxHeight上执行此操作不显示
infoContent.style.maxHeight=infoContent.style.maxHeight?0:'100px';
}
info.addEventListener(“单击”,展开,错误);
.innerBG{
宽度:260px;
边距:0自动0自动;
溢出:自动;
}
奥特伯格先生{
宽度:260px;
背景色:#4f322a;
保证金:15px自动25px自动;
边界半径:15px;
溢出:自动;
}
.集装箱{
宽度:100%;
背景色:#70463a;
溢出:自动;
}
.innerBG h2{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容李{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容{
最大高度:0;/*默认情况下折叠*/

溢出:隐藏;/*您希望添加到
最大高度的转换,并切换该转换,而不是
显示
。原因是
显示
不是序数值,因此无法设置动画,因为无法内插转换值。
最大高度
是序数,因此可以转换

记住这一点,重要的是要注意,
max height
的“show”值应该足以容纳内容,否则过渡会拉长。这也比在
height
上设置动画要好,因为不需要已知值,高度只会增长到所需的高度

var infoContent=document.getElementById(“infoContent”);
var info=document.querySelector(“.info”);
函数expand(){//在maxHeight上执行此操作不显示
infoContent.style.maxHeight=infoContent.style.maxHeight?0:'100px';
}
info.addEventListener(“单击”,展开,错误);
.innerBG{
宽度:260px;
边距:0自动0自动;
溢出:自动;
}
奥特伯格先生{
宽度:260px;
背景色:#4f322a;
保证金:15px自动25px自动;
边界半径:15px;
溢出:自动;
}
.集装箱{
宽度:100%;
背景色:#70463a;
溢出:自动;
}
.innerBG h2{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容李{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容{
最大高度:0;/*默认情况下折叠*/

溢出:隐藏;/*您希望添加到
最大高度的转换,并切换该转换,而不是
显示
。原因是
显示
不是序数值,因此无法设置动画,因为无法内插转换值。
最大高度
是序数,因此可以转换

记住这一点,重要的是要注意,
max height
的“show”值应该足以容纳内容,否则过渡会拉长。这也比在
height
上设置动画要好,因为不需要已知值,高度只会增长到所需的高度

var infoContent=document.getElementById(“infoContent”);
var info=document.querySelector(“.info”);
函数expand(){//在maxHeight上执行此操作不显示
infoContent.style.maxHeight=infoContent.style.maxHeight?0:'100px';
}
info.addEventListener(“单击”,展开,错误);
.innerBG{
宽度:260px;
边距:0自动0自动;
溢出:自动;
}
奥特伯格先生{
宽度:260px;
背景色:#4f322a;
保证金:15px自动25px自动;
边界半径:15px;
溢出:自动;
}
.集装箱{
宽度:100%;
背景色:#70463a;
溢出:自动;
}
.innerBG h2{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字号:100;
}
#信息内容李{
字体大小:20px;
字体系列:lato;
颜色:#ffffff;
字体我们
function expand () {
    infoContent.style.display = infoContent.style.display === 'none' ? '' : 'none';
}
function expand () {
    infoContent.className = infoContent.className === 'open' ? 'close' : 'open';
}
#infoContent {
    margin: 0; // Remove the margins
    overflow: hidden;
}

#infoContent.close {
    max-height: 0; // Set max height to zero
    transition: max-height 0.3s ease;
}

#infoContent.open {
    max-height: 300px; /* Set max height as big as you think it will ever go */
    transition: max-height 0.3s ease;
}