高度自适应不能触发transition的解决方法

1. 前言 

  在我们不能确定一个元素的高度的时候,要使用transition过渡,是不会触发的,比如一个p标签 内容行数不固定  我们可能就要初始 height: 0 ; 过渡到 height: auto ;  写完发现并不能实现 。

  

可过渡的样式

  不是所有的CSS样式值都可以过渡,只有具有中间值的属性才具备过渡效果

  Vstart = 开始值; Vend = 结束值; Vres = 中间值; p = 过渡函数的输出值
  Vres = (1 - p) * Vstart + p * Vend
  当Vres具有有效值时,则该CSS样式可过渡

2. 解决方法(一个实例)  通过设置max-height 来实现
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #div{
                max-height: 0;
                transition: .8s;
                overflow: hidden;
                border: 1px solid #000;
            }
            #btn{
                width: 50px;
                text-align: center;
                margin: 60px;
                line-height: 30px;
                border: 2px solid #000;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="btn">
            点击我
        </div>
        <div id="div">
            asd <br/>
            asd <br/>
            asd <br/>
            asd <br/>
            asd <br/>
        </div>

        <script>
            btn.onclick = function(){
                if(div.on){
                    div.style.maxHeight = ‘0px‘;
                    div.on = false;
                }else{
                    div.style.maxHeight = ‘300px‘;
                    div.on = true;
                }
            }
        </script>
    </body>
</html>
因为max-height是根据内容来撑开高度的,只要max-height  大于正常高度就好了。

原文地址:https://www.cnblogs.com/maopixin/p/8669142.html

时间: 2024-11-09 10:14:12

高度自适应不能触发transition的解决方法的相关文章

Quartz.NET 前一次任务未执行完成时不触发下次的解决方法

原文:Quartz.NET 前一次任务未执行完成时不触发下次的解决方法 如图所示,在Job 上 加     [DisallowConcurrentExecution]        特性 原文地址:https://www.cnblogs.com/lonelyxmas/p/11780421.html

高度塌陷的产生条件和解决方法

高度塌陷产生的原因: 高度塌陷: 当所有的子元素浮动的时候,且父元素没有设置高度,这时候父元素就会产生高度塌陷. 例如: .father{ width: 600px; /* 给父元素一个宽度 */ background-color: #008000; /* 给个背景颜色 */ } .child_1{ width: 200px; height: 200px; background-color: #00FFFF; float: left; /* 子元素浮动 */ } .child_2{ width:

父元素高度比子元素高度多几个像素的解决方法

html代码: 1 <div> 2 <textarea></textarea> 3 </div> 其中textarea元素的高度为80px,而它的父元素div高度为84px,为什么会多出4px呢? 解决方法是: 1.设textarea为 display: block;

CSS关于子元素设置了float属性后父元素高度为0的解释和解决方法

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8&q

ViewPager不能高度自适应?height=wrap_content 无效解决办法

ViewPager用的很多,主要用啦展示广告条.可是高度却不能自适应内容,总是会占满全屏,即使设置android:height="wrap_content"也是没有用的.. 解决办法其实网上有很多,但是个人感觉不是很好 比如:LinearLayout的时候, 使用weight来自动调整ViewPager的高度. 一般的代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

(总结)Nginx 502 Bad Gateway错误触发条件与解决方法

一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.以下是从Google搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的.这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在

input的onchange事件实际触发条件与解决方法

nput中onchange事件已经属于元老级别了,并且现在同onclick一样使用频率很高,然而onchange的机制实际上有很多童鞋并不清楚,我们通过实例来分析这个事件的特征. 触发onchange 首先页面有一个input标签,并且已绑定onchange事件,如: <input type="text" onchange="console.log(this.value);" /> 这个事件要做的动作很简单,只是把input的值在控制台上打印出来就好.效

CSS布局之-高度自适应

何为高度自适应? 高度自适应就是高度能跟随浏览器窗口的大小改变而改变,典型的运用在一些后台界面中上面一栏高度固定用作菜单栏或导航栏,下面一栏高度自适应用于显示内容.高度自适应不像宽度自适应那样简单,在兼容浏览器方面也稍微复杂一些. 布局思路 在IE7+及chrome.firefox等浏览器中,高度自适应可以利用绝对定位来解决.但一个元素是绝对定位时,如果没有给它设定高度或宽度,则它的的高度和宽度是由它的top.right.bottom.left属性决定的,但这一法则在IE6中并不适用,因此在IE

NGUI使用问题及解决方法总结

记录笔者使用NGUI时遇到的问题及解决方法 版本:NGUI v3.6.8 (Jul 13, 2014) (1)Box Collider不能调节大小 原因:Box Collider在游戏运行时会自适应大小. 解决方法:挂脚本获取Box Collider组件,手动更改Center属性和size属性 以下图为例: ps:看了一部分其他博文,发现都有提到这个问题,但并没看到确实的解决方法 原文地址:https://www.cnblogs.com/neos/p/8512049.html