Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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 如何在图元不超出父边界的情况下转换高度?_Javascript_Html_Css_Css Transitions - Fatal编程技术网

Javascript 如何在图元不超出父边界的情况下转换高度?

Javascript 如何在图元不超出父边界的情况下转换高度?,javascript,html,css,css-transitions,Javascript,Html,Css,Css Transitions,我正在尝试进行一个转换,从顶部的所有内容开始,在页面加载后,内容慢慢向下扩展 我已经让它的大部分工作,除了当内容向下扩展页面,它不断扩大的方式以外的父母的边界。我将所有元素都设置为扩展到100%,所以我认为扩展元素只会扩展到其父元素大小的100%,但它会一直向下扩展 也许我只是误解了父母/孩子身高百分比的工作原理。有人能指出我做错了什么吗?谢谢 以下是HTML代码: <body> <div id="outer"> <div class="m

我正在尝试进行一个转换,从顶部的所有内容开始,在页面加载后,内容慢慢向下扩展

我已经让它的大部分工作,除了当内容向下扩展页面,它不断扩大的方式以外的父母的边界。我将所有元素都设置为扩展到100%,所以我认为扩展元素只会扩展到其父元素大小的100%,但它会一直向下扩展

也许我只是误解了父母/孩子身高百分比的工作原理。有人能指出我做错了什么吗?谢谢

以下是HTML代码:

<body>
    <div id="outer">
        <div class="middle">
            <div class="inner">
                 <h3>A-B</h3>

                <ul>
                    <li>A</li>
                    <li>B</li>
                </ul>
            </div>
            <div class="inner">
                 <h3>C-G</h3>

                <ul>
                    <li>C</li>
                    <li>D</li>
                    <li>E</li>
                    <li>F</li>
                    <li>G</li>
                </ul>
            </div>
            <div class="inner">
                 <h3>H</h3>

                <ul>
                    <li>H</li>
                </ul>
            </div>
        </div>
    </div>
</body>
以下是CSS:

html {
    height: 100%;
}
body {
    height: 100%;
}
#outer {
    height: 100%;
}
.middle {
    border: solid 2px black;
    height: 100%;
}
.inner {
    height: 0%;
    transition: height 5s 2s;
    -moz-transition: height 5s 2s;
    -webkit-transition: height 5s 2s;
    -o-transition: height 5s 2s;
}
#outer.loaded .inner {
    height: 100%;
}

百分比基于父级。您正在设置三个级别。内部到高度为100%。这意味着总高度是300%。将.inner设置为33%更为合理

编辑


出于兴趣,我在这里找到了另一篇文章,这篇文章可能会对您的尝试有所帮助,即从“过渡高度0”到“过渡高度自动”,这实际上涉及到将“最大高度”设置为一个非常大的数字(至少比其“自动高度”大),因此无论如何只能过渡到“自动”

百分比基于父级。您正在设置三个级别。内部到高度为100%。这意味着总高度是300%。将.inner设置为33%会更合理我认为当一切都设置为100%时,他们会平均分配空间。我想它不是那样工作的。不,它不是那样工作的。有没有办法让它们自动分割并平滑过渡?我试着设置自动,但它从顶部开始,直接跳到完全扩展。我唯一能想到的方法是让javascript参与进来,计算出高度并将其设置为百分比,然后启动CSS转换
html {
    height: 100%;
}
body {
    height: 100%;
}
#outer {
    height: 100%;
}
.middle {
    border: solid 2px black;
    height: 100%;
}
.inner {
    height: 0%;
    transition: height 5s 2s;
    -moz-transition: height 5s 2s;
    -webkit-transition: height 5s 2s;
    -o-transition: height 5s 2s;
}
#outer.loaded .inner {
    height: 100%;
}