首頁 > web前端 > css教學 > 主體

如何利用CSS製作一個聚光燈效果(附代碼)

青灯夜游
發布: 2022-04-11 11:12:48
轉載
4358 人瀏覽過

如何利用CSS製作一個聚光燈效果?以下這篇文章跟大家分析一下實現原理,分享一下CSS聚光燈效果的實作程式碼,希望對大家有幫助!

如何利用CSS製作一個聚光燈效果(附代碼)

CSS聚光燈效果的實作原理很簡單:

  • 將兩個文字完全重疊,內層是深灰色,外層是有漸層顏色的。 【建議學習:css影片教學
  • 在將外層的文字套用圓形遮罩。
  • 最後加上 CSS Animation

技術支援

引用到的CSS屬性有:

##實作

為了讓HTML結構保持簡潔,之後會使用偽類元素去製作。

HTML程式碼如下:

<h1 data-text="我想藏在罐头里!!!">我想藏在罐头里</h1>
登入後複製

注意: attr() 理論上能用於所有的CSS屬性但目前支援的僅有偽元素的content 屬性,其他的屬性和高階特性目前是實驗性的

譯者註:如果發現瀏覽器相容表裡attr( )的高階用法依舊沒有良好的支援的話,本文大部分內容都是紙上談兵

引用

MDN文件

CSS程式碼如下:

*{
    margin: 0;
    padding: 0;
}

:root{
  --ellipse: 6.25rem;
}

html, body{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background: #222;
}
h1{
    font-size: 4rem;
    color: #333;
    width: 37.5rem;
    position: relative;
}
h1::after{
    /* attr(attribute_name) */
    content:attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    color: pink;
    clip-path: ellipse(var(--ellipse) var(--ellipse) at 0% 50%);
    animation: move 5s infinite;
}
@keyframes move{
    0%, 100%{
        clip-path: ellipse(var(--ellipse) var(--ellipse) at 0% 50%);
    }
    50%{
        clip-path: ellipse(var(--ellipse) var(--ellipse) at 100% 50%);
    }
}
登入後複製

實現效果如下:

如何利用CSS製作一個聚光燈效果(附代碼)

現在動態的聚光燈效果就完成了。

但還有問題,不知道細心的小夥伴發現了沒有,製作成品的文字是

彩色 的,原理就是加上背景圖片,然後將文字作為遮罩,最後把color 改成透明,所以我們要修改一下程式碼。

h1:after 中新增程式碼background-imagebackground-clip

h1::after{
    /* 别忘记修改color为透明 */
    color: transparent;
    background-image: linear-gradient(to left,#1a2a6c,#b21f1f,#fdbb2d);
    background-clip: text;
    /* 因为background-clip是预览阶段的css属性,要加上一个前缀版本 */
    -webkit-background-clip: text;
}
登入後複製

看一下最終的完成效果:

如何利用CSS製作一個聚光燈效果(附代碼)

示範的原始碼在這裡CodePen 連結:

https://codepen.io/jackbrens/pen/MWrGNed

總結

以上就是這次分享的全部內容~~

如果覺得文章寫得不錯,對你有所啟發的,請不要吝嗇點個

關注 並在評論區 留下你寶貴的意見哦~~

(學習影片分享:

web前端

以上是如何利用CSS製作一個聚光燈效果(附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
css
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!