Maison  >  Article  >  interface Web  >  Comment créer un effet de projecteur en utilisant CSS (code ci-joint)

Comment créer un effet de projecteur en utilisant CSS (code ci-joint)

青灯夜游
青灯夜游avant
2022-04-11 11:12:484225parcourir

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 !

Comment créer un effet de projecteur en utilisant CSS (code ci-joint)

Le principe de mise en œuvre de l'effet Spotlight CSS est très simple :

  • superposez complètement les deux textes, le calque interne est gris foncé et le calque externe a une couleur dégradée. [Apprentissage recommandé : Tutoriel vidéo CSS]
  • Appliquez un masque circulaire sur le texte extérieur.
  • Ajoutez 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%);
    }
}

实现效果如下:

Comment créer un effet de projecteur en utilisant CSS (code ci-joint)

现在动态的聚光灯效果就完成了。

但是还有问题,不知道细心的小伙伴发现了没有,制作成品的文字是 彩色 的,原理就是加上背景图片,然后将文字作为遮罩,最后把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;
}

看一下最终的完成效果:

Comment créer un effet de projecteur en utilisant CSS (code ci-joint)

演示的源代码在这里 CodePen 链接:

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

总结

以上就是本次分享的全部内容~~

如果觉得文章写得不错,对你有所启发的,请不要吝啬 点个 关注 并在 评论区

Support technique

Les propriétés CSS citées sont :

linear-gradient()

🎜🎜background-image🎜🎜🎜background-clip 🎜 🎜🎜clip-path🎜🎜

Implémentation

🎜Afin de garder la structure HTML simple, des éléments de pseudo-classe seront utilisés ultérieurement. 🎜🎜Le code HTML est le suivant : 🎜rrreee
🎜Remarque : attr() 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>
🎜Le code CSS est le suivant :🎜rrreee🎜L'effet d'implémentation est le suivant :🎜🎜Comment créer un effet de projecteur en utilisant CSS (code ci-joint)🎜🎜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 en 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🎜

Résumé

🎜Ça y est Tout le contenu partagé cette fois-ci~~🎜🎜Si vous pensez que l'article est bien écrit et vous a inspiré, n'hésitez pas à cliquer sur 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer