Svelte的Transition API提供了一種有力的方法,可以使組件進入或離開DOM,包括創建自定義過渡。默認利用CSS動畫可確保最佳性能。基本語法很簡單:<element transition:transitionfunction=""></element>
。您也可以in
指令或out
指令用於單向過渡。
Svelte的svelte/transition
軟件包提供了七個預構建的過渡功能,可以在不編寫自定義代碼的情況下,易於自定義,以提供svelte/easing
,以供各種動畫效果。嘗試這些可能性。
需要巧妙的介紹嗎?我們有一個全面的概述。
製作自定義苗條過渡
對於超出預構建選項的精細控制,Svelte允許定義自定義過渡功能,但要遵守特定的約定。如有記錄,API結構是:
transition =(node:htmlelement,params:any)=> { 延遲?:數字, 持續時間?:數字, 放鬆?:( t:number)=>數字, CSS?:( T:number,u:number)=>字符串, tick?:( t:number,u:number)=> void }
過渡功能接收DOM節點,並帶有動畫參數返回對象。至關重要的是,它包括css
或tick
功能。
css
函數返回定義動畫的CSS字符串(例如,變換或不透明度更改)。 tick
功能提供了完整的JavaScript控件,但是以性能成本繞過CSS動畫時的性能成本。
css
和tick
都使用參數t
(入口時為0.00至1.00,出口時1.00至0.00)和u
(1- t
)。例如, transform: scale(${t})
在輸入時從0到1平滑地比例。
讓我們建立一個自定義過渡以說明。
您的第一個自定義苗條過渡
我們將從一個簡單的切換開始,以使用SVELTE #if
塊來控制元素的DOM的影響(請記住,僅在DOM條目/出口上發生過渡)。
<script> let showing = true; </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
切換複選框顯示出鮮明的外觀/消失。現在,讓我們添加一個自定義過渡功能:
<script> let showing = true; function whoosh(node) { console.log(node); } </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
現在切換將元素記錄到控制台,確認連接。我們將通過動畫來增強它。讓我們創建一個css
函數以進行縮放:
<script> function swoop() { return { duration: 1000, css: (t) => `transform: scale(${t})` } } let showing = true; </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
元素現在擴展,但突然。使用t
進行平滑動畫:
<script> function swoop() { return { duration: 1000, css: (t) => `transform: scale(${t})` } } let showing = true; </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
對於“打動”效果,讓我們添加translateX
,從側面進行動畫:
<script> function swoop() { return { duration: 1000, css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)` } } let showing = true; </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
在這裡, u
( t
的倒數)控制著translateX
,以確保流暢的運動。
最後,讓我們添加一個輕鬆的功能:
<script> import { elasticOut } from 'svelte/easing'; function swoop() { return { duration: 1000, easing: elasticOut, css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)` } } let showing = true; </script> <label for="showing"> 展示 </label> <input type="checkbox" bind:checked="{showing}" id="showing"> {#if顯示} <h1 id="你好自定義過渡">你好自定義過渡!</h1> {/如果}
結論
您現在創建了一個自定義苗條的過渡!這只是一個起點。探索文檔和教程以獲取更高級的技術。了解t
和u
的相互作用是創建動態動畫的關鍵。
以上是使您的第一個自定義苗條過渡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

React生態系統為我們提供了許多庫,所有庫都集中在拖放的相互作用上。我們有反應,反應,可愛dnd,

我可以說我經常使用背景折疊。 IT Wager IT幾乎從未在日常CSS工作中使用。但是在斯特凡·朱迪斯(Stefan Judis)的帖子中,我想起了它,

使用RequestAnimationFrame進行動畫化應該很容易,但是如果您還沒有徹底閱讀React的文檔,那麼您可能會遇到一些事情

聽著,我不是GraphQL專家,但我確實喜歡與之合作。作為前端開發人員,它向我曝光數據的方式非常酷。它就像一個菜單


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能