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%); } }
實現效果如下:
現在動態的聚光燈效果就完成了。
但是還有問題,不知道細心的小夥伴發現了沒有,製作成品的文字是 彩色
的,原理就是加上背景圖片,然後將文字作為遮罩,最後把color
改成透明,所以我們要修改一下程式碼。
在 h1:after
中新增程式碼 background-image
和 background-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; }
看一下最終的完成效果:
演示的原始碼在這裡 CodePen 連結:
https://codepen.io/jackbrens/pen/MWrGNed
以上就是本次分享的全部內容~~
如果覺得文章寫得不錯,對你有所啟發的,請不要吝嗇 點個 贊
和 關注
並在 評論區
留下你寶貴的意見哦~~
(學習視訊分享:)
以上就是如何利用CSS製作一個聚光燈效果(附程式碼)的詳細內容,更多請關注TW511.COM其它相關文章!