>웹 프론트엔드 >CSS 튜토리얼 >CSS를 사용하여 스포트라이트 효과를 만드는 방법(코드 포함)

CSS를 사용하여 스포트라이트 효과를 만드는 방법(코드 포함)

青灯夜游
青灯夜游앞으로
2022-04-11 11:12:484430검색

CSS를 사용하여 스포트라이트 효과를 만드는 방법은 무엇입니까? 다음 글에서는 구현 원리를 분석하고 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

总结

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

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

기술 지원

인용된 CSS 속성은 다음과 같습니다:

linear-gradient()

🎜🎜배경 이미지🎜🎜🎜배경 클립 🎜 🎜🎜clip-path🎜🎜

구현

🎜HTML 구조를 단순하게 유지하기 위해 나중에 의사 클래스 요소가 사용됩니다. 🎜🎜HTML 코드는 다음과 같습니다: 🎜rrreee
🎜참고: attr()는 이론적으로 모든 CSS 속성에 사용할 수 있지만 현재는 의사 요소만 지원합니다콘텐츠 🎜 속성, 기타 속성 및 고급 기능은 현재 실험적입니다🎜🎜번역가의 참고: 브라우저 호환성 표에서 attr()의 고급 사용이 아직 잘 지원되지 않는 경우 이 문서의 내용 대부분은 On입니다. 논문 🎜🎜인용문 <a href="https://developer.mozilla.org/zh-CN/docs/Web/CSS/attr" target="_blank" rel="nofollow noopener noreferrer" ref="nofollow noopener noreferrer">MDN 문서🎜🎜</a>
🎜CSS 코드는 다음과 같습니다.🎜rrreee🎜구현 효과는 다음과 같습니다.🎜🎜CSS를 사용하여 스포트라이트 효과를 만드는 방법(코드 포함)🎜🎜이제 동적 스포트라이트 효과가 완성되었습니다. 🎜🎜그래도 문제는 꼼꼼한 친구들이 발견한 걸까요. 마스크를 넣고 마지막으로 color를 넣으면 투명으로 변경되므로 코드를 수정해야 합니다. 🎜🎜h1:after에 코드 background-image background-clip 추가: 🎜rrreee🎜최종 효과 보기: 🎜 🎜🎜
🎜The 데모 소스 코드는 여기 CodePen 링크: 🎜🎜https://codepen.io/jackbrens/pen/MWrGNed🎜

요약

🎜그게 다입니다 이번에 공유한 내용은 모두~~🎜🎜글이 잘 쓰여지고 영감을 받았다고 생각하신다면 주저하지 마시고 좋아요팔로우를 눌러주시고 댓글을 남겨주세요. 소중한 의견을 남겨주세요~~🎜🎜 (학습 영상 공유 : 🎜웹 프론트엔드🎜)🎜

위 내용은 CSS를 사용하여 스포트라이트 효과를 만드는 방법(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제