javascript - 展开带有动画的 div 容器,其中包含文本

标签 javascript html css

我正在处理网站,我使用一些简单的 css 和 js 使 div 展开并隐藏了文本。任何人都可以教我如何使文本随着过渡一起扩展? 仅供引用,我对网页设计的了解有限,如果我的代码困惑,请见谅。

    <html>
    <style>

    body, html {
    height: 100%;
    background-color: black;
	text-align: center;
	font-family: 'Roboto', sans-serif;
	margin: 0;
    }

    p.italic { 
	font-size: 150%;
	line-height: 50px;
	font-style:italic;
    }

    p { 
	font-size: 100%;
	line-height: 25px;
    }

    h1 { 
    font-size: 400%;
    }

    .container1 {
    height: 80px;
    background-color:white;
    margin-left:50px;
    margin-right:50px;
    transition: all 2s ease;
    }

    .container1expanded {
    height: 280px;
    transition: all 2s ease;
    line-height: normal;
    }

    .container1 h1 { 
    font-size: 400%;
    line-height: 40px;
    }

    #container1p {
    display: none;
    transition: all 2s ease;
    }
    <body>
    </style>
    <script type="text/javascript">
    function expand(){
        document.getElementById("container1").style.height= "280px";
        document.getElementById("container1p").style.display= "block";
    }

    </script>
    <div class="container1" id="container1">
    <h1 onclick="expand()">Lorem ipsum</h1>
    <div id="container1p">
    <p class="italic">Lorem ipsum dolor sit amet</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur                                             venenatis eget felis at tempor. Phasellus bibendum auctor massa condimentum venenatis. 
    </p>
    </div>
    </div>
    </body>
    <html>

最佳答案

如果您将 overflow: hidden 添加到扩展元素,文本将不会自动弹出到页面上 - 默认情况下,文本将隐藏/剪裁在扩展元素中,并且它会扩展,随着高度的增加,它会显示文本。我还调整了扩展元素的底部高度。

    <html>
    <style>

    body, html {
    height: 100%;
    background-color: black;
	text-align: center;
	font-family: 'Roboto', sans-serif;
	margin: 0;
    }

    p.italic { 
	font-size: 150%;
	line-height: 50px;
	font-style:italic;
    }

    p { 
	font-size: 100%;
	line-height: 25px;
    }

    h1 { 
    font-size: 400%;
    }

    .container1 {
    background-color:white;
    margin-left:50px;
    margin-right:50px;
    transition: all 2s ease;
    overflow: hidden;
    height: 100px;
    }

    .container1expanded {
    height: 280px;
    transition: all 2s ease;
    line-height: normal;
    }

    .container1 h1 { 
    font-size: 400%;
    line-height: 40px;
    }

    #container1p {
    display: none;
    transition: all 2s ease;
    }
    <body>
    </style>
    <script type="text/javascript">
    function expand(){
        document.getElementById("container1").style.height= "280px";
        document.getElementById("container1p").style.display= "block";
    }

    </script>
    <div class="container1" id="container1">
    <h1 onclick="expand()">Lorem ipsum</h1>
    <div id="container1p">
    <p class="italic">Lorem ipsum dolor sit amet</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur                                             venenatis eget felis at tempor. Phasellus bibendum auctor massa condimentum venenatis. 
    </p>
    </div>
    </div>
    </body>
    <html>

关于javascript - 展开带有动画的 div 容器,其中包含文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550294/

相关文章:

javascript - Framework7 : Open the same page and stack it in page history

javascript - 为什么这个js函数会导致内存泄漏?

javascript - 如何在 prev() 中使用正则表达式?

html - 从 URL (PATH) 下载 - iPhone

javascript - 可以防止内联 block 元素变得太宽并被向下推吗

css - 如何以跨浏览器和双向友好的方式定位 SVG 文本元素?

javascript - React - 每次渲染同一张图片时的随机位置

html - _layout 页面 - 默认所有页面居中 - 自动宽度

php - 显示数据库 mysql、PHP 中的图像

html - 如何旋转外部 div 而不是内部内容