html div 子元素 过多 卡顿,CSS不定高元素transition动画的解决方案

CSS不定高元素transition动画的解决方案

类别: 技术·CSS

时间:2019-07-27 23:41:35

字数:3297

版权所有,未经允许,请勿转载,谢谢合作~

### 前言

CSS中transition可以方便的实现我们的过渡动画效果,但并不是元素的所有属性都可以过渡,那有哪些元素支持动画呢,这里有个列表:

所有支持transition的属性

这么多属性估计记不住,可以理解成,过渡是只能由元素的值A逐渐变成值B,如果A与B不是一个确切的具体数字,也就无从得知“运动轨迹”,动画则无效。

比如我们不能让A图片过渡变成B图片,因为A图片与B图片一般不是简单的数字变换。

虽然height支持transition,但如果由height: 0;变成height: auto;还是无效的,因为css引擎无法得知auto是多少。

不过我们还是有一些简单的方案可以解决这个问题的。

###场景1 max-height与scaleY展开收起

我们有个二级导航,在点击某一级导航时,需展开其下的二级导航,但我们在纯css中无从得到二级导航的个数,但高度不定,一般transition不会生效。

场景1解决方案:使用max-height。 如果能确定最大高度,则直接设置该值;如果不能,确定一个合适的值(什么叫合适值呢?就是较大又不会过大,视业务而定,如果设一个过大的max-height,会因为运行轨迹问题显有卡顿严重),然后允许有滚动条(如果在移动端的全屏下,滚动条不像pc端这么怪异)

关键代码:

html

```html

```

css:

```css

.sub-nav-list {

max-height: 0;

overflow: auto;

transition: max-height 1s ease-out;

}

.show-sub-nav-list .sub-nav-list {

max-height: 150px;

}

```

场景1解决方案2:使用scaleY进行缩放,只适用于一个一级导航的情况,否则下面会出现空白。

关键代码:

```css

.sub-nav-list-2 {

transition: transform 0.4s ease-out;

transform: scaleY(0);

transform-origin: top;

}

.show-sub-nav-list .sub-nav-list-2 {

transform: scaleY(1);

}

```

参考demo: 不定高的导航展开动画demo

###场景2,移动端全屏不定高导航下拉动画

这应该是一种比较常见的场景,因为全屏,可以使用fixed或absolute,高度可以由0%变成100%,再结合场景1的导航列表,比较简单,唯一需要主要的是,该块设置top,需要设置一个一样高度bottom避免下面少了一块,因为这种场景height: 100%情况下增加top会使得其下移。

主要代码:

html

```html

fixed的头部

这是页面内容

```

CSS:

```css

.header {

position: fixed;

top: 0;

left: 0;

width: 100%;

height: 40px;

line-height: 40px;

text-align: center;

background-color: #00d586;

z-index: 5;

}

.nav-wrap {

position: fixed;

top: 0;

right: 0;

bottom: 0;

left: 0;

width: 100%;

height: 0;

top: 40px;

transition: height 0.4s ease-out;

background-color: #fff;

}

.nav-guide {

position: absolute;

top: 0;

width: 100%;

height: 40px;

line-height: 40px;

text-align: center;

border-bottom: 1px solid #ccc;

}

.nav-list-wrap {

position: absolute;

top: 40px;

bottom: 40px;

left: 0;

width: 100%;

overflow-y: auto;

}

.show-nav-list {

height: 100%;

}

```

demo(请使用移动端打开): 移动端全屏不定高导航下拉动画demo

###提问

##### 为什么我们的非绝对定位元素height不能由0%至100%呢?

规范中写到,如果包含块的高度没有显式指定(如父元素高度为默认值auto),并且该元素不是绝对定位,则计算值为auto,auto则transition不会生效。

全部留言

我要留言

内容:

网名:

邮箱:

个人网站:

发表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bat 变量 文件内容第一行_VBA基础入门(38)FSO生成bat文件后执行的实例

1.首先,我们回顾下FSO是什么?文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件…

HTML5废除元素,HTML5 与 HTML4 的区别(2) - 新增的元素和废除的元素

新增的结构元素在 HTML5 中,新增了以下与结构相关的元素:section元素section 元素表示页面中的一个内容区块,比如章节、页眉、页脚或页面中的其他部分。它可以与h1、h2、h3、h4、h5、h6等元素结合起来使用,标识文档结构。HTML5 中…

ps怎么更改背景图层大小_PhotoShop处理图层的一些技巧方法、PS图层处理教程

一、了解图层以及为什么它们如此有用。1.在“图层”面板中查看和选择图层2.层包含组成分层文件的图像,文本或对象。它们使您可以在一层上移动,编辑和使用内容,而不会影响其他层上的内容。3.图层在“ 图层”面板中按堆栈排列,该面板…

zabbix计算型监控项函数last_zabbix 自定义key类型之计算(Calculated items)-阿里云开发者社区...

计算类型的key定义主要是根据已定义过的key值来计算的。例如创建一个计算linux服务器内存实际使用大小的监控项(计算方法为:vm.memory.size[total]-vm.memory.size[cached]-vm.memory.size[free]),方法如下:1、在模板中或是主机中选择监控项-…

使用计算机画画需要什么软件,专业电脑绘画用的是什么工具?

满意答案srCDG3SL62013.11.13采纳率:57% 等级:12已帮助:11125人电脑硬件配置(CPU,内存,显卡等)越高,绘制大图时,软件不会卡。就会画的很流畅。特别是Painter,模拟自然画笔越真实,…

中如何移动物体在画面中的位置_组合柜摆在客厅中什么位置最旺运?客厅中,财位是如何确定的?...

组合柜摆在客厅中什么位置最旺运?组合柜在风水中的重要性不如沙发,但要注意的宜忌事项也有很多。风水上讲高者为山,低者为水,有高有低,有山有水,才符合风水原理。在客厅中,低的沙发是水&#xf…

计算机概论在线阅读,计算器概论 or 计算机概论

计算机硬件的五大单元输入单元、输出单元、CPU内部控制单元、算数逻辑单元、主存储器。中央处理器 CPU Central Processing UnitCPU 的种类精简指令集 Reduced Instruction Set Computing, RISCSun SPARCIBM Power Architecture复杂指令集 Complex Instruction Set Comp…

螺旋天线有方向性吗_螺旋天线方向图

luoxuan13度.zip.zip我画的二臂螺旋天线同轴电缆馈电,得到的方向图是酒杯形状的,而不是半球行的,修改了好多次参数都是这样,这可如何是好,我的模型有问题么?还是哪里出了问题,请帮忙。怎么没人帮…

jquery ajax html编码,jQuery AJAX字符编码

我目前正在编码一个法语网站。有一个时间表页面,可以使用侧面的链接加载另一天的时间表。这是我用来执行此操作的JS:function load(y) {$.get(y,function(d) {$("#replace").html(d);mod();});}function mod() {$("#dates a").click…

miui10读取不了u盘_u盘能识别但无法读取_u盘无法识别如何修复

2019-08-07 14:04:57U盘设备大家都比较熟悉了,正常情况下,电脑插入U盘后会自动识别读取数据,然后在打开U盘数据进行操作。但是有用户反映将U盘插入win10系统后竟然无法识别,难道是U盘设备坏了,但是在...2018-06-07 10:…

四川大学计算机学院赵怡,【喜讯】我校计算机学院学子在蓝桥杯大赛全国总决赛中再获佳绩...

在第十一届蓝桥杯“全国软件和信息技术专业人才大赛”省赛上,我校选手面对包括北京大学、清华大学、上海交通大学、北京航空航天大学、武汉大学、西安交通大学、北京理工大学、四川大学、电子科技大学、吉林大学、东北大学等在内的1200余所高校,6万余名顶…

2002勘察设计收费标准_上海装修设计师的收费标准是什么?

目前家装行业的发展趋势全是特别迅速的,一点都不落后于房地产业的发展趋势,因此目前在好多大城市全是各式各样的家装公司,这篇以上海装修公司为例,向大伙儿详细介绍一下上海装修设计公司的有些收费标准,看一下绝大多数…

计算机控制系统EHA,优·计算机控制技术第四章.doc

第四章 过程控制理论与技术4.1 过程控制系统的连续化设计4.1.1 概述1.简述计算机控制系统的设计,是指在给定系统性能指标的条件下,设计出控制器的控制规律和相应的数字控制算法。典型的计算机控制系统如图4.1.1所示。系统的输入r(t)跟系统的输出y(t)比较…

华为畅享10s值得买吗_华为畅享10 Plus值不值得买?首批购买用户评价出炉

原标题:华为畅享10 Plus值不值得买?首批购买用户评价出炉【手机中国新闻】9月5日,华为在西安召开华为畅享10 Plus新品发布会,拥有着天空之境等新潮配色的华为畅享10 Plus也正式和大家见面。这款产品不仅采用了升降式摄像头设计&am…

计算机应用基础二作业,计算机应用基础(二)作业2 (精选可编辑)

《计算机应用基础(二)作业2 (精选可编辑)》由会员分享,可在线阅读,更多相关《计算机应用基础(二)作业2 (精选可编辑)(15页珍藏版)》请在金锄头文库上搜索。1、题目01 在Windows 控制面板中,使用添加删除程序的作用是_。a. 设置字体 b. 安装未…

colab清理gpu缓存_安卓手机为什么会变卡?强制GPU渲染手机就能变流畅?你真的懂吗...

使用过安卓手机的朋友都知道,安卓手机最大的毛病就是卡顿,那你知道安卓手机变卡的原因吗?还有网上很多教程说开启“强制进行GPU渲染”手机就会变流畅,真的是这样吗?我们先来了解安卓手机为什么会变卡:安卓手…

脉冲宽度调制pdm_STM32第七章-脉冲宽度调制

先说在开头啊,我们学习定时器总感觉它是很难的,这里我就不说他的编程难度,而是对于它的理解难度。学习定时器你就必须了解他的来龙去脉。比如说你现在要使用一个定时器,那么先要决定你要用哪一个定时器,是高级定时器还…

浙大 计算机 毕业论文格式,浙大硕士毕业论文格式

浙大硕士毕业论文格式时间:2017-06-15 来源:未知 本文字数:2725字作者:胡老师 单位:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力…

苹果13系统锁屏延迟_iPhone11 锁屏出现延迟,iOS13 新 Bug?

点击 哎咆科技 关注我们这两天很多人在后台反应,用 iPhone11 锁屏的时候出现了延迟的情况。虽然延迟并不是很长,但还是会有“卡顿”的感觉。咆哥:我最近也感觉到了。于是很多同学认为,是不是 iOS13 系统的问题?你们多虑…

西南科技大学城市学院计算机专科,西南科技大学城市学院官网

标识码:4151014045普通本科理工类民办西南科技大学城市学院是经教育部批准设立,由西南科技大学举办的全日制普通高等学校,在本科第三批次、专科第二批次招生。学院由西南科技大学原副校长李众立教授出任院长。学院现有18个本专科专业&#xf…