今天小編給大家分享一下怎么利用CSS制作一個聚光燈效果的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創(chuàng)新互聯(lián)公司長期為上1000家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為文昌企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都做網(wǎng)站,文昌網(wǎng)站改版等技術(shù)服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
CSS聚光燈效果的實現(xiàn)原理很簡單:
將兩個文字完全重疊,內(nèi)層是深灰色,外層是有漸變顏色的。
在將外層的文字套用圓形遮罩。
最后加上 CSS Animation
。
引用到的CSS屬性有:
linear-gradient()
background-image
background-clip
clip-path
為了將HTML結(jié)構(gòu)保持簡潔,之后會使用 偽類元素 去制作。
HTML代碼如下:
我想藏在罐頭里
注意:
attr()
理論上能用于所有的CSS屬性但目前支持的僅有偽元素的content
屬性,其他的屬性和高級特性目前是實驗性的譯者注:如果發(fā)現(xiàn)瀏覽器兼容表里attr()的高級用法依舊沒有良好的支持的話,本文大部分內(nèi)容都是紙上談兵
引用 MDN文檔
CSS代碼如下:
*{ margin: 0; padding: 0; } :root{ --ellipse: 6.25rem; } html, body{ display: flex; justify-content: center; align-items: center; height: 100vh; background: #222; } h2{ font-size: 4rem; color: #333; width: 37.5rem; position: relative; } h2::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%); } }
現(xiàn)在動態(tài)的聚光燈效果就完成了。
但是還有問題,不知道細心的小伙伴發(fā)現(xiàn)了沒有,制作成品的文字是 彩色
的,原理就是加上背景圖片,然后將文字作為遮罩,最后把color
改成透明,所以我們要修改一下代碼。
在 h2:after
中新增代碼 background-image
和 background-clip
:
h2::after{ /* 別忘記修改color為透明 */ color: transparent; background-image: linear-gradient(to left,#1a2a6c,#b21f1f,#fdbb2d); background-clip: text; /* 因為background-clip是預覽階段的css屬性,要加上一個前綴版本 */ -webkit-background-clip: text; }
以上就是“怎么利用CSS制作一個聚光燈效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。