Comment créer un effet de projecteur en utilisant CSS ? L'article suivant analysera le principe d'implémentation et partagera le code d'implémentation de l'effet CSS Spotlight. J'espère qu'il sera utile à tout le monde !
Le principe de mise en œuvre de l'effet Spotlight CSS est très simple :
Animation CSS
à la fin. 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
以上就是本次分享的全部内容~~
如果觉得文章写得不错,对你有所启发的,请不要吝啬 点个 赞
和 关注
并在 评论区
🎜Remarque :🎜Le code CSS est le suivant :🎜rrreee🎜L'effet d'implémentation est le suivant :🎜🎜🎜🎜Maintenant, l'effet de projecteur dynamique est terminé. 🎜🎜Mais il y a toujours un problème. Je me demande si mes amis attentifs l'ont découvert. Le texte dans le produit fini est enattr()
peut théoriquement être utilisé pour tous les attributs CSS mais ne prend actuellement en charge que les pseudo-élémentscontent 🎜 Les attributs, autres attributs et fonctionnalités avancées sont actuellement expérimentaux🎜🎜Note du traducteur : si vous constatez que l'utilisation avancée de attr() dans le tableau de compatibilité du navigateur n'est toujours pas bien prise en charge, la plupart du contenu de cet article est activé. papier 🎜🎜Citation <a href="https://developer.mozilla.org/zh-CN/docs/Web/CSS/attr" target="_blank" rel="nofollow noopener noreferrer" ref="nofollow noopener noreferrer">Document MDN🎜🎜</a>
couleur
. masque, et enfin mettre le color
est changé en transparent, nous devons donc modifier le code. 🎜🎜Ajoutez les codes background-image
et background-clip
dans h1:after
: 🎜rrreee🎜Regardez l'effet final : 🎜 🎜🎜🎜Le le code source de la démo est ici Lien CodePen : 🎜🎜https://codepen.io/jackbrens/pen/MWrGNed🎜
J'aime
et sur Suivre
et à laisser un commentez dans Zone de commentaires
Laissez vos précieux avis~~🎜🎜 (Partage de vidéos d'apprentissage : 🎜front-end web🎜)🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!