Stories

Detail Return Return

純CSS實現炫酷背景霓虹燈文字效果 - Stories Detail

如圖所示,這是一個很炫酷的霓虹燈文字效果且背景炫酷,就像很多個燈光閃爍着不同的顏色。

本次文章將解析如何用CSS代碼實現這個效果,根據上面的動圖分析出我們要實現的幾個主要功能點:

  • 整個背景中有平均分佈的小點襯托中心區域
  • 文字閃爍效果如同霓虹燈一樣
  • 文字背景呈多個平均分佈的亮點
  • 背景亮點的顏色整體呈現漸變色變化

1. 默認背景色

首先我們來看看如何通過CSS創建一個多個小點背景效果。

1.1 設置根元素變量

:root偽類中,定義了一系列的CSS變量,這些變量在整個文檔中都是可用的。例如,--rotate用於控制旋轉動畫的角度,而--radius--bg--width等用於定義背景和形狀的基本屬性。

:root {
  --rotate: 0deg;
  --radius: 12;
  --bg: hsl(210 30% 70% / 0.15);
  --width: 80;
  --height: 80;
  --border: 0;
  --blur: 10;
  --alpha: 0;
  font-family: 'Montserrat', sans-serif;
}
1.2 設計背景樣式

body標籤中設置了背景的基礎樣式,使用了徑向漸變(radial-gradient)來創建一種特殊的紋理效果。配合 background-sizebackground-position 即可完成默認的背景效果。

body {
  background-color: #25282a;
  background-image: 
    radial-gradient(#535150a0 0.95px, transparent 0.95px),
    radial-gradient(#535150a0 0.95px, #25282a 0.95px);
  background-size: 38px 38px;
  background-position: 0 0, 19px 19px;
  min-height: 100vh;
  display: grid;
  place-content: center;
  padding: 0 10vw;
}

此時的背景效果如下:

2. 創建漸變背景旋轉效果

2.1 旋轉動畫的實現

新增.back類利用conic-gradient來創建一個彩色圓環效果,而--rotate變量控制着這個圓環的旋轉。這種效果通過@keyframes spin動畫實現,其中--rotate的值在一定週期內從0deg變化到360deg,實現了一個完整的旋轉週期。

.back {
  // 背景圖像和漸變設置
  background-image: 
    radial-gradient(#53515010 1px, transparent 0),
    radial-gradient(#53515010 2px, #25282a 0),
    conic-gradient(from var(--rotate) at 50% 70%, hsl(0 0% 98% / .1) 0deg, #eec32d 72deg, #ec4b4b 144deg, #709ab9 216deg, #4dffbf 288deg, hsl(0 0% 98% / .1) 1turn);
  background-size: 
    5vmin 5vmin, 
    5vmin 5vmin,
    100% 100%;
  animation: spin 5s linear infinite;
}

@keyframes spin {
  0% { --rotate: 0deg; }
  100% { --rotate: 360deg; }
}

如果這裏僅設置 conic-gradient 並配合 animation 動畫的效果就是下面的樣子:

但是再增加一個 radial-gradient 徑向漸變並設置 background-size5vmin 5vmin 的顯示區域。

radial-gradient(#53515010 2px, #25282a 0),

完成後的效果圖:

這裏需要注意的一點就是多個漸變設置的順序,這裏的 conic-gradient 要放置在後面才能完成這個效果。這種旋轉效果不僅增加了頁面的視覺吸引力,而且通過顏色的流動變換,為用户提供了一種動態的互動體驗。它不僅是一種美學上的選擇,也展示了CSS動畫和漸變的強大功能。

2. 霓虹燈文字效果

接下來探討如何實現背景中的霓虹燈文字效果。

2.1 文本的動態陰影效果

通過設置text-shadow屬性,並使用自定義變量--color1--color4,為文本創建了動態的陰影效果。

.gd {
  color: rgb(182, 255, 192);
  --color1: pink;
  --color2: orangered;
  --color3: red;
  --color4: magenta;
  text-shadow: 
    0 0 10px var(--color1),
    0 0 20px var(--color2),
    0 0 40px var(--color3),
    0 0 80px var(--color4);
}
2.2 文本動畫效果

基於添加好的陰影效果進一步增加動畫效果,模擬燈光閃爍的效果,在動畫中調整陰影的顏色和大小在一定時間內變化,從而產生動態效果。

flicker動畫為文本添加了一個顏色和濾鏡的變化效果。在動畫的50%時刻,文本的顏色變為白色,同時增加濾鏡的飽和度和色調發生變化,創建了一種“閃爍”效果。

will-change: filter, color;
filter: saturate(60%);
animation: flicker steps(100) var(--interval) 1s infinite;

@keyframes flicker {
  50% {
    color: white;
    filter: saturate(200%) hue-rotate(20deg);
  }
}

3. 懸停效果:增強用户交互

最後進一步增加用户的交互體驗,當鼠標懸停的時候增加背景邊框效果。.gd:hover選擇器用於定義當鼠標懸停在元素上時的樣式變化。默認邊框不可見,在這裏當鼠標懸停時,--border變量的值從0變為1,給元素添加了邊框效果,從而增強了用户的交互體驗。

.back {
  border: double calc(var(--border) * 1px) transparent;
}

.gd:hover {
  --border: 1;
}

增加懸停交互後的效果:

結語

本文詳細解析瞭如何利用CSS的來創造炫酷動態漸變背景和霓虹燈文字效果。這種動效不僅對於前端開發者有啓發,也為設計師和內容創作者提供了新的視角,去探索網頁設計的無限可能性。

通過這段CSS代碼的解析,我們可以看到CSS不僅是用來定義網頁的基本樣式,還可以創建複雜的視覺效果和動畫。這些技術不僅提高了網頁的美觀性,還增強了用户的交互體驗。隨着前端技術的不斷髮展,我們可以期待更多創新的設計和實現,為網頁帶來更加豐富和動態的視覺效果。

關注公眾號回覆【 20231203 】可獲取完整源代碼~

參考

codepen.io/ghaste/pen/NWobwWb
codepen.io/erikjung/pen/XdWEKE


看完本文如果覺得有用,記得點個贊支持,收藏起來説不定哪天就用上啦~

專注前端開發,分享前端相關技術乾貨,公眾號:南城大前端(ID: nanchengfe)

user avatar toopoo Avatar anchen_5c17815319fb5 Avatar columsys Avatar wqjiao Avatar zhaoxiaoman Avatar hello888 Avatar lizh Avatar
Favorites 7 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.