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.pswp.cn/news/529920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529920.shtml
英文地址,請注明出處:http://en.pswp.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…