目錄
我們正在使用內聯SVG
我們需要稍微設置一下SVG樣式
其餘的只是使用Chris的技術
現在全部放在一起!
首頁 web前端 css教學 挖掘WordPress中的預覽加載動畫

挖掘WordPress中的預覽加載動畫

Apr 15, 2025 am 10:19 AM

深入WordPress預覽加載動畫

WordPress在5.0版本中引入了塊編輯器(又名Gutenberg),隨之而來的是一個漂亮的新的文章預覽屏幕,顯示WordPress徽標在預覽加載時自行繪製。

這就是保存文章草稿並在編輯器中點擊“預覽”按鈕時看到的畫面。他們是如何實現的呢?我很難查看頁面的源代碼,因為預覽加載速度很快,但我確實看到了SVG被用於WordPress徽標。這正是我所需要的,因為我的腦海中立刻回想起Chris在2014年寫的一篇文章,該文章使用stroke-dasharraystroke-dashoffset屬性來創建相同的效果。

這是Chris在那篇文章中分享的示例:

[CodePen鏈接](See the Pen bGyoz by Chris Coyier (@chriscoyier) on CodePen.)

此後,我已經能夠獲得CSS代碼來確認WordPress繪圖確實使用了相同的技術,但我將分享我在嘗試反向工程時是如何分解問題的。

我們正在使用內聯SVG

WordPress版本的一個巧妙之處在於我們使用了兩個SVG路徑而不是一個。這意味著我們有兩個似乎同時繪製的部分。以下是內聯在HTML中的SVG。我們還有“正在生成預覽”文本,它可以位於SVG外部。

<svg aria-hidden="true" focusable="false" role="img" viewbox="0 0 96 96" xmlns="http://www.w3.org/2000/svg"><path d="M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36" fill="none"></path><path d="M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z" fill="none"></path></svg><p> Generating preview...</p>
登入後複製

第一個路徑是一個橢圓,作為第二個路徑的邊界,第二個路徑是WordPress徽標的形狀。最好為每個路徑賦予一個類——特別是如果這不是頁面上的唯一元素——但我決定不使用類,因為這是演示中的唯一元素。在這種情況下,我們可以使用CSS選擇這兩個路徑,或者使用偽選擇器(例如path:nth-child(2) )分別選擇它們。

還有一些其他的輔助操作。例如,SVG獲得屬性以使其更易於訪問,例如將其標識為圖像,將其隱藏在屏幕閱讀器之外,並防止其被聚焦。

我們需要稍微設置一下SVG樣式

非常非常簡單的樣式。我們需要一個描邊,因為路徑上沒有填充顏色。否則我們將看到很多空白。好吧,是一個不可見的形狀,但本質上是沒有任何東西。

 svg {
  stroke: #555;
  stroke-width: 0.5;
  width: 250px;
}
登入後複製

這給了我們兩個路徑的輪廓。 stroke-width屬性的好處在於它接受十進制值,因此我們可以使線條更細一些。這樣繪製看起來就像是用鉛筆劃的一樣。

這裡的寬度是相當任意的,但它很重要,因為我們將使用的stroke-dasharraystroke-dashoffset屬性依賴於它。如果這些屬性值小於SVG的大小,則繪製將停止完成。如果它太大,則繪製速度會太快。

現在我們知道了寬度並且可以看到路徑描邊,我們可以相應地設置stroke-dasharraystroke-dashoffset

 svg path {
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}
登入後複製

比SVG略大,並且破折號之間有很大的空間,這應該差不多合適。可以調整這些值以根據您的喜好調整動畫。

其餘的只是使用Chris的技術

繪製是一個使用一個關鍵幀的CSS動畫。如果我們將stroke-dashoffset從零開始,則路徑在初始加載時將不可見,並在動畫達到100%時增長到我們之前設置的300值。同樣,我們將偏移量設置為300,以便描邊破折號及其之間的空間將擴展到SVG之外以覆蓋整個內容。

所有魔法都只是五行代碼:

 @keyframes draw {
  0% {
    stroke-dashoffset: 0;
  }
}
登入後複製

將動畫命名為您喜歡的任何名稱。我們可以只在0%定義動畫,因為100%是隱式的。

哦!我們還必須將動畫附加到路徑,所以:

 svg path {
  animation: draw 2s ease-out infinite alternate;
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}
登入後複製

您也可以調整這些值來加快或減慢速度。緩動效果使動畫具有輕微的脈衝效果,其中開始和結束的速度比運動的中間部分慢一些。

現在全部放在一起!

我之前提到過,但我最終能夠從實際實現中獲取源代碼,它非常接近,使用了相同的原理。

Digging Into the Preview Loading Animation in WordPress

以上是挖掘WordPress中的預覽加載動畫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1668
14
CakePHP 教程
1427
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

See all articles