Netlify官網的下載按鈕設計簡潔而優雅,吸引眼球又不顯突兀,其交互效果尤其令人印象深刻:鼠標懸停時,按鈕擴展並顯示“Download”字樣。 我注意到Safari瀏覽器下顯示略有差異,這激發了我探究其實現方式的興趣。因此,我嘗試復現了該效果,並對間距進行了優化。
其核心技術在於四個方面:
- 利用
left
屬性控制“Download”標籤的顯示和隱藏。 - 利用按鈕懸停狀態下的
padding
屬性為“Download”標籤騰出空間。 - 在按鈕懸停狀態下聲明
scale(1, 1)
,確保內容在移動時保持完整。 - 使用
transition
屬性對按鈕的padding
、background-position
position )和transform
屬性進行動畫過渡,實現流暢的動畫效果。
以下是不包含樣式的代碼示例,更清晰地展現其原理:
如果難以理解其運作方式,下圖展示了“Download”標籤如何通過overflow: hidden
隱藏在按鈕之外,以及鼠標懸停時如何將其推入視野。
通過為圖標和“Download”標籤設置負的left
值,將其隱藏,然後在鼠標懸停整個按鈕時將其重置為正值。
/* 默認狀態*/ .button { background: #f6bc00 url(data:image/svg xml;base64,...) no-repeat -12px center; overflow: hidden; } .button span:nth-child(1) { position: absolute; left: -70px; } /* 懸停狀態*/ .button:hover { padding-left: 95px; background-position: 5px center; } .button span:nth-child(1) { position: absolute; left: -70px; }
需要注意的是,僅此狀態下,圖標會滑入視野,並為“Download”標籤留出足夠空間,但標籤會在懸停時漂浮在按鈕之外。
這時,在按鈕上添加scale(1, 1)
可以保持內容完整。
/* 懸停狀態*/ .button:hover { padding-left: 95px; background-position: 5px center; transform: scale(1, 1); }
padding
值是經驗值,會根據字體、字號等因素而變化。
最後, transition
屬性使動畫過渡平滑,提升用戶體驗。
/* 默認狀態*/ .button { background: #f6bc00 url(data:image/svg xml;base64,...) no-repeat -12px center; overflow: hidden; transition: padding .2s ease, background-position .2s ease, transform .5s ease; }
添加一些細節修飾,如圓角等,即可得到一個精美的按鈕。
以上是重新創建NetLify'巧妙的滑動按鈕效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

對於Astro,我們可以在構建過程中生成大部分網站,但是有一小部分服務器端代碼可以使用Fuse.js之類的搜索功能來處理搜索功能。在此演示中,我們將使用保險絲搜索一組個人“書籤”


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

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

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

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

SublimeText3 Linux新版
SublimeText3 Linux最新版