重新創建NetLify'巧妙的滑動按鈕效果
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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...
