国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
Svelte 存儲的快速入門
彈簧速成課程
首頁 web前端 css教程 苗條和春季動畫

苗條和春季動畫

Mar 28, 2025 pm 12:20 PM

Svelte and Spring Animations

Spring 動畫是讓 UI 交互栩栩如生的絕佳方式。Spring 動畫并非以恒定速率在一段時間內(nèi)更改屬性,而是使用彈簧物理學(xué)來移動事物,從而給人以真實物體移動的印象,并能為用戶提供更自然的體驗。

我之前寫過關(guān)于 Spring 動畫的文章。那篇文章基于 React,使用 react-spring 進(jìn)行動畫處理。本文將探討在 Svelte 中類似的思想。

CSS 開發(fā)人員!在控制動畫效果時,通常會想到緩動。您可以將“彈簧”動畫視為基于現(xiàn)實世界物理學(xué)的緩動子類別。

Svelte 實際上在框架中內(nèi)置了彈簧,無需任何外部庫。我們將回顧之前關(guān)于 react-spring 的文章前半部分的內(nèi)容。但之后,我們將深入探討 Svelte 中彈簧的所有使用方法,并將實際的實現(xiàn)留到以后的文章中。雖然這可能看起來令人失望,但 Svelte 有一些 React 中沒有的獨特功能,可以有效地與這些動畫基元集成。我們將花一些時間討論它們。

還有一點需要注意:本文中穿插的一些演示可能看起來很奇怪,因為我將彈簧配置為“彈性”更大,以產(chǎn)生更明顯的效果。如果您使用了任何演示的代碼,請務(wù)必找到適合您的彈簧配置。

這是 Rich Harris 制作的一個很棒的 REPL,用于展示各種彈簧配置及其行為。

Svelte 存儲的快速入門

在開始之前,讓我們快速瀏覽一下 Svelte 存儲。雖然 Svelte 的組件完全能夠存儲和更新狀態(tài),但 Svelte 也具有存儲的概念,允許您在組件外部存儲狀態(tài)。由于 Svelte 的 Spring API 使用存儲,因此我們將在此快速介紹其重要部分。

要創(chuàng)建存儲的實例,我們可以導(dǎo)入 writable 類型,并像這樣創(chuàng)建它:

import { writable } from "svelte/store";
const clicks = writable(0);

clicks 變量是一個值為 0 的存儲。有兩種方法可以設(shè)置存儲的新值:set 和 update 方法。前者接收要設(shè)置為存儲的值,而后者接收一個回調(diào)函數(shù),接受當(dāng)前值并返回新值。

function increment() {
  clicks.update(val => val   1);
}
function setTo5() {
  clicks.set(5);
}

如果您無法實際使用狀態(tài),那么狀態(tài)就沒有用。為此,存儲提供了 subscribe 方法,允許您收到新值的通知——但在組件內(nèi)使用它時,您可以在存儲名稱前加上 $ 字符,這告訴 Svelte 不僅要顯示存儲的當(dāng)前值,還要在它更改時更新。例如:

<h1>Value {$clicks}</h1>
Increment
Set to 5

這是一個完整的、可工作的代碼示例。存儲提供了許多其他功能,例如派生存儲(允許您將存儲鏈接在一起)、可讀存儲,甚至能夠在首次觀察存儲和不再有觀察者時收到通知。但是對于本文的目的,上面顯示的代碼是我們需要關(guān)注的全部內(nèi)容。請參閱 Svelte 文檔或交互式教程以了解更多信息。

彈簧速成課程

讓我們快速介紹一下彈簧及其作用。我們將查看一個簡單的 UI,它更改某些元素的呈現(xiàn)方面(不透明度和轉(zhuǎn)換),然后查看動畫更改。

這是一個最小的 Svelte 組件,它切換一個 <div> 的不透明度,并切換另一個 <code><div> 的 x 軸轉(zhuǎn)換(沒有任何動畫)。 <pre class="brush:php;toolbar:false">&lt;div style=&quot;opacity: {shown ? 1 : 0}&quot;&gt;Content to toggle&lt;/div&gt; &lt;br&gt;Toggle &lt;hr&gt;&lt;div style=&quot;transform: translateX({moved}px)&quot;&gt;I'm a box.&lt;/div&gt; &lt;br&gt;Move it!</pre> <p>這些更改會立即應(yīng)用,因此讓我們看看如何對其進(jìn)行動畫處理。這就是彈簧的用武之地。在 Svelte 中,彈簧是一個存儲,我們可以在其上設(shè)置所需的值,但它不會立即更改,而是存儲內(nèi)部使用彈簧物理學(xué)逐漸更改值。然后,我們可以將我們的 UI 綁定到這個變化的值,以獲得不錯的動畫效果。讓我們看看它的實際效果。</p> <pre class="brush:php;toolbar:false">import { spring } from &quot;svelte/motion&quot;; const fadeSpring = spring(1, { stiffness: 0.1, damping: 0.5 }); const transformSpring = spring(0, { stiffness: 0.2, damping: 0.1 }); const toggleFade = () =&gt; fadeSpring.update(val =&gt; (val ? 0 : 1)); const toggleTransform = () =&gt; transformSpring.update(val =&gt; (val ? 0 : 500)); const snapTransform = () =&gt; transformSpring.update(val =&gt; val, { hard: true }); &lt;div style=&quot;opacity: {$fadeSpring}&quot;&gt;Content to fade&lt;/div&gt; &lt;br&gt;Fade Toggle &lt;hr&gt;&lt;div style=&quot;transform: translateX({$transformSpring}px)&quot;&gt;I'm a box.&lt;/div&gt; &lt;br&gt;Move it! Snap into place</pre> <p>我們從 Svelte 獲取 spring 函數(shù),并為不透明度和轉(zhuǎn)換動畫設(shè)置不同的 spring 實例。轉(zhuǎn)換彈簧配置被故意設(shè)置為<em>非常有彈性</em>,以幫助稍后展示如何臨時關(guān)閉彈簧動畫并立即應(yīng)用所需更改(這將在以后派上用場)。腳本塊的末尾是用于設(shè)置所需屬性的點擊處理程序。然后,在 HTML 中,我們將變化的值直接綁定到我們的元素……就是這樣!這就是 Svelte 中基本彈簧動畫的全部內(nèi)容。</p> <p>唯一剩下的項目是 snapTransform 函數(shù),我們將其轉(zhuǎn)換彈簧設(shè)置為其當(dāng)前值,但還將一個對象作為第二個參數(shù)傳遞,其中 hard: true。這具有立即應(yīng)用所需值而無需任何動畫的效果。</p> <p>此演示以及我們將在本文中看到的其余基本示例都位于此處:[此處應(yīng)插入演示鏈接]</p> <p>...(文章其余部分的偽原創(chuàng),保持原文意思不變,并保持圖片位置和格式)</p> </div>

以上是苗條和春季動畫的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何僅在某些頁面上包括CSS? 如何僅在某些頁面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁面上的方法有三種:1.內(nèi)聯(lián)CSS,適用于不常訪問或需要獨特樣式的頁面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用于使用服務(wù)器端語言的場景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會阻塞頁面渲染是因為瀏覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

如何在無花果中使用Lotties 如何在無花果中使用Lotties Jun 14, 2025 am 10:17 AM

在接下來的教程中,我將向您展示如何在無花果中創(chuàng)建Lottie動畫。我們將使用兩種彩色設(shè)計來超越如何在無花果上進(jìn)行動畫,然后向您展示如何從Figma到Lottie動畫。您只需要免費無花果

打破邊界:用(s)CSS構(gòu)建湯姆拼圖 打破邊界:用(s)CSS構(gòu)建湯姆拼圖 Jun 13, 2025 am 11:33 AM

我們對其進(jìn)行了測試,事實證明,至少在低級邏輯和拼圖行為時,Sass可以替換JavaScript。除了地圖,混音,功能和大量數(shù)學(xué)外,我們都設(shè)法使我們的Tangram難題栩栩如生,沒有J

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS計數(shù)器:一個逐步教程,示例 CSS計數(shù)器:一個逐步教程,示例 Jun 12, 2025 am 10:31 AM

CSSCounters是一種用于創(chuàng)建自動編號的工具。1.基本用法:通過counter-reset和counter-increment定義和操作計數(shù)器,如在h2前顯示"SectionX."。2.高級用法:使用嵌套計數(shù)器創(chuàng)建復(fù)雜編號,如章節(jié)和小節(jié)編號。3.注意事項:確保正確重置計數(shù)器,優(yōu)化性能,簡化計數(shù)器邏輯。4.最佳實踐:命名清晰,在CSS中定義計數(shù)器,合理使用counter-increment和counter-reset。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

See all articles