首页 > 其他分享 >扫描光效动画css实现

扫描光效动画css实现

时间:2024-07-10 10:31:26浏览次数:17  
标签:动画 50% 100% 元素 37 transform 光效 0% css

        想实现扫描生效的动画,主要是通过伪元素 (::after) 的定义,通常用于在元素后面添加装饰性的内容。在这个例子中,伪元素创建了一个动画效果,让它看起来像是一个扫描光效果。

        主要css如下:

.element {
  position: relative; /* 使伪元素绝对定位相对于这个元素 */
}
.element::after {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 200%;
  height: 50px;
  background-image: linear-gradient(132deg, rgb(37 37 37 / 0%) 0%, rgb(255 255 255 / 20%) 50%, rgb(37 37 37 / 0%) 100%);
  transform-origin: center center;
  transform: translate(-100%, 50%) rotate(45deg);
  animation: ScanLights 3s linear 1s infinite;
}

各个属性解释:

  • content: "": 创建一个空的伪元素。
  • position: absolute: 使伪元素的定位方式相对于其最近的定位祖先元素(即 position 属性不是 static 的最近祖先元素)。
  • display: block: 使伪元素成为一个块级元素。
  • top: 0, right: 0, bottom: 0, left: 0: 这些属性将伪元素定位在其包含块的四个边缘。
  • width: 200%: 设置伪元素的宽度为其包含块宽度的两倍。
  • height: 50px: 设置伪元素的高度为 50 像素。
  • background-image: linear-gradient(...): 创建一个线性渐变背景,渐变从 132 度开始,透明色(rgb(37 37 37 / 0%))到 0%,中间是半透明白色(rgb(255 255 255 / 20%)),到 100% 结束再回到透明色。
  • transform-origin: center center: 设置变换的基点为元素的中心。
  • transform: translate(-100%, 50%) rotate(45deg): 平移和旋转伪元素,将其移动到左边并旋转 45 度。
  • animation: ScanLights 3s linear 1s infinite: 应用名为 ScanLights 的动画,持续 3 秒,以线性方式执行,延迟 1 秒开始,并无限循环。

 这里面还有一部关键部分那就是关键帧动画

@keyframes ScanLights {
  0% {
    transform: translate(-100%, 50%) rotate(45deg);
  }
  100% {
    transform: translate(100%, 50%) rotate(45deg);
  }
}

这个动画从 0%100%

  • 0%: 伪元素从相对于中心点的 -100% 水平偏移开始,并旋转 45 度。
  • 100%: 伪元素移动到相对于中心点的 100% 水平偏移位置,保持 45 度旋转。
 什么是@keyframsne?

我找了MDN的官方文档给大家看看,源地址:https://developer.mozilla.org/zh-CN/docs/Web/CSS/@keyframes

写一个demo让大家参考参考
 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Scan Light Effect</title>
    <style>
      .element {
        position: relative;
        width: 300px;
        height: 150px;
        background-color: #333;
        overflow: hidden;
        margin: 0 auto;
      }

      .element::after {
        content: "";
        position: absolute;
        display: block;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 200%;
        height: 50px;
        background-image: linear-gradient(
          132deg,
          rgb(37 37 37 / 0%) 0%,
          rgb(255 255 255 / 20%) 50%,
          rgb(37 37 37 / 0%) 100%
        );
        transform-origin: center center;
        transform: translate(-100%, 50%) rotate(45deg);
        animation: ScanLights 3s linear 1s infinite;
      }

      @keyframes ScanLights {
        0% {
          transform: translate(-100%, 50%) rotate(45deg);
        }
        100% {
          transform: translate(100%, 50%) rotate(45deg);
        }
      }
    </style>
  </head>
  <body>
    <div class="element"></div>
  </body>
</html>

希望能和大家一起学习!!!

标签:动画,50%,100%,元素,37,transform,光效,0%,css
From: https://blog.csdn.net/J123375644/article/details/140313504

相关文章

  • CSS 选择符及其继承属性详解
    CSS(层叠样式表)是网页设计中不可或缺的一部分,它负责控制网页的样式和布局。CSS选择符是CSS规则的核心,用于选择HTML元素并应用样式。本文将详细介绍CSS选择符的种类,并探讨哪些CSS属性是可以继承的。1.CSS选择符的种类CSS选择符用于选择HTML元素,以便为其应用样式......
  • html+css+js贪吃蛇游戏
    贪吃蛇游戏......
  • 面壁智能发布端侧 AI 应用开发平台;快手推出肖像动画技术 LivePortrait丨 RTE 开发者日
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • SpringBoot彩蛋之定制启动画面
    写在前面在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种①spring项目启动画面②mybatisplus启动画面③若依项目启动画面还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢?一、小试牛刀①新建一个SpringBoot项目②在项目的resources目录下新......
  • CSS四种定位介绍——相对定位、绝对定位、固定定位、粘性定位
    一、相对定位  1. 如何设置相对定位?   (1)给元素设置position:relative即可实现相对定位。   (2)可以使用left、right、top、bottom四个属性调整位置。  2. 相对定位的参考点?    相对自己原来的位置  3. 相对定位的特点:  ......
  • CSS3伸缩盒模型之伸缩容器和伸缩项目、主轴、侧轴
    一、伸缩容器和伸缩项目 伸缩容器:设置了display:flex的元素,就是伸缩容器。  1.给元素设置:display:flex或display:inline-flex,该元素就变为了伸缩容器。  2.display:inline-flex很少使用,因为可以给多个伸缩容器的父容器,也设置为伸缩容器。  3.一个元......
  • JavaWeb__HTML&CSS
    目录一、HTML1、网页的组成部分2、HTML文件的书写规范3.HTML标签的介绍4、标签的语法5、常用标签介绍二、CSS1、CSS技术介绍2、CSS语法规则3、CSS和HTML的结合方式3.1、行内式3.2、内嵌式3.3、外部样式表4、CSS选择器4.1、标签名选择器4.2、id选择器4.3、class选择......
  • 前端面试基础html/js/css
    一、css1.说一下css盒子模型CSS盒子模型(BoxModel)是CSS中用于描述元素尺寸和布局的一个重要概念。它定义了元素的内容、内边距、边框、外边距和高度的计算方式。盒子模型对于网页布局和响应式设计至关重要。在CSS中,每个元素都可以被视为一个盒子,这个盒子由内容(content)、......
  • CSS Grid 网格布局边框设置
    Grid网格布局是一种比较新的布局方法,几乎能实现所有设计的布局,比Flex布局更强大.但是最近将它用于画表格时碰到了一点问题,就是关于边框.需求是将所有边都加上等粗的边框,同时内容最好能进行水平和垂直的居中.碰到的问题:1.使用cssborder,可能会造成边框的重叠这个能搜到......
  • CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对
    静态定位position:static【默认】此时,元素按文档流的方式排布:以左上角为起点内联元素从左到右依次排布,当一行排不下时,自动换到下一行继续从左到右排布块级元素独占一行此时,top、left、right、bottom、z-index等样式无效。相对定位position:relative相对......