側邊固定圖示 CSS 特效:Hover 圓形展開成藥丸長條設計

許多網頁會為了引導使用者,在視窗邊緣放置固定的聯絡入口。圓形圖示佔空間小,但資訊傳達力不足;長條按鈕則是資訊充足卻容易遮擋內容。透過 CSS 特效讓圖示在滑鼠移入(Hover)時才從圓形平滑展開成藥丸形狀並顯示文字,是兼顧美感與功能性的一種優雅解決方案。

寬度過渡與內容裁切原理

這個特效的核心在於控制容器的寬度(width)變化。我們將容器設定為固定高度,並使用 border-radius: 50%(或高度的一半)來維持圓角外觀。當滑鼠移入時,觸發寬度增加的動畫,同時讓原本隱藏的文字浮現。

關鍵屬性是 overflow: hidden,它確保在寬度尚未展開時,內部的長文字不會溢出顯示,從而達到完美的隱藏效果。

實作程式碼

<!DOCTYPE html>
<html lang="zh-TW">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Facebook Icon Hover Effect - Right Fixed</title>
    <style>
        body {
            margin: 0;
            padding: 50px;
            background-color: #f0f0f0;
            font-family: Arial, sans-serif;
        }

        .facebook-icon {
            position: fixed;
            right: 30px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            align-items: center;
            justify-content: flex-end;
            width: 50px;
            height: 50px;
            background: linear-gradient(135deg, #8B5CF6, #A855F7);
            border-radius: 25px;
            cursor: pointer;
            transition: all 0.4s ease;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
            z-index: 999;
        }

        .facebook-icon:hover {
            width: 160px;
            border-radius: 25px;
        }

        .icon-text {
            position: absolute;
            left: 15px;
            color: white;
            font-size: 14px;
            font-weight: 600;
            opacity: 0;
            transform: translateX(-10px);
            transition: all 0.4s ease;
            white-space: nowrap;
        }

        .facebook-icon:hover .icon-text {
            opacity: 1;
            transform: translateX(0);
        }

        .facebook-f {
            position: absolute;
            right: 15px;
            color: white;
            font-size: 20px;
            font-weight: bold;
            transition: all 0.4s ease;
        }

        /* 內容區域示範樣式 */
        .container {
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }

        .demo-title {
            font-size: 24px;
            color: #333;
            margin-bottom: 20px;
        }

        .content {
            background: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            margin-bottom: 30px;
        }
    </style>
</head>
<body>

    <!-- 固定在右邊的 Facebook 圖示 -->
    <div class="facebook-icon" id="facebookIcon">
        <span class="icon-text">追蹤我們的 Facebook</span>
        <span class="facebook-f">f</span>
    </div>

    <div class="container">
        <h1 class="demo-title">Facebook Icon Hover Effect - 固定右邊實作</h1>
        <div class="content">
            <p>請將滑鼠移動到畫面右側的圓形圖示上觀察展開效果。</p>
        </div>
    </div>

</body>
</html>

開發實作重點

  • 防止文字換行:內部的 .icon-text 必須設定 white-space: nowrap。如果不設定,在寬度動畫增加的過程中,文字會因為寬度不足而被迫換行,造成嚴重的視覺抖動。
  • 定位策略:為了讓圖示在展開時看起來是「向左延伸」,外層容器建議固定在右側(right),並對內部圖示與文字使用 position: absolute 分別固定在左右兩端,這樣展開時位置才不會跑掉。
  • 動態層級:由於使用了 ,務必檢查 z-index 的設定,確保按鈕不會被頁面上的其他元件(如全螢幕選單或彈窗)遮擋。
  • 行動裝置適應:手機觸控並沒有 Hover 狀態。在實務上,通常會透過媒體查詢(Media Queries)在行動版將寬度固定,或者讓它保持圓形圖示即可,避免點擊時產生無法預期的過渡效果。

看不懂沒關係,照做就能用

以上的原理看不懂沒關係,只要照著下面的步驟操作就能直接套用:

操作步驟

  1. 開啟您的 WordPress 頁面編輯器(如 Elementor)
  2. 在頁面中新增一個「HTML」小工具(Widget)
  3. 將上方範例中的完整程式碼(包含 <style> 標籤與 <body> 內的 <div> 結構)複製並貼入小工具中
  4. 如果您希望全站都出現此圖示,建議安裝 FluentSnippets 插件,新增一個片段並將執行位置設定為「Site Wide Footer」
  5. 點擊儲存並發佈頁面
  6. 清除網站快取,回到前台查看畫面右側是否有出現圓形圖示

本程式碼已預設好相關樣式,您不需要手動到進階設定填寫 Class,但請確保貼入的 HTML 包含以下結構:

  • .facebook-icon:這是主要的外框容器
  • .icon-text:這是滑鼠移入時會顯示的「追蹤我們的 Facebook」文字
  • .facebook-f:這是固定顯示在右側的「f」圖示文字
如果啟用後網站出現異常,回到 Snippets 將該片段停用即可立刻復原,不會影響其他設定。
文章分享