文字聚光灯特效 html+css

先不说啥,上效果:

1

前提:

要用到一个clip-path属性,可以创建一个只有元素的部分区域可以显示的剪切区域。但是,这属性 兼容性不太好 ,还没有得到所有主流浏览器广泛支持(比如Firefox和IE)。

实现:

1.定义一盒标签放文字:

<body>
   <h1>北极光之夜</h1>
</body>

2.给文本设置颜色和大小:

 h1{
        position: relative;
        color: #6b6868;
        font-size: 120px;  
    }

3.定义一个伪元素:

h1::after{
        content: '北极光之夜';
        top: 0;
        left: 0;
        position: absolute;
        color: transparent;
        background-image: linear-gradient(to left,rgb(0, 174, 255),rgb(0, 255, 85),rgb(212, 0, 255),rgb(0, 204, 255),rgb(238, 255, 0));
        background-clip: text;
        -webkit-background-clip: text;
        clip-path: circle(80px at 0% 50%);
        animation: move 3s linear alternate infinite;
    }

注意:一些属性意思:
color: transparent; 文本默认颜色透明~
background-clip: text;
-webkit-background-clip: text; 只在文本里显示颜色~

clip-path: circle(80px at 0% 50%); 背景截取显示区域为圆形,半径为80px,圆心在0% 50%的位置~

4.动画:就是不断改变圆心位置

@keyframes move{
        0%{
            clip-path: circle(80px at 0% 50%);
        }
        100%{
            clip-path: circle(80px at 100% 50%);
        }
    }

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    *{
     
     
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    body{
     
     
        height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: #070707;
    }
    h1{
     
     
        position: relative;
        color: #6b6868;
        font-size: 120px;  
    }
    h1::after{
     
     
        content: '北极光之夜';
        top: 0;
        left: 0;
        position: absolute;
        color: transparent;
        background-image: linear-gradient(to left,rgb(0, 174, 255),rgb(0, 255, 85),rgb(212, 0, 255),rgb(0, 204, 255),rgb(238, 255, 0));
        background-clip: text;
        -webkit-background-clip: text;
        clip-path: circle(80px at 0% 50%);
        animation: move 3s linear alternate infinite;
    }
    @keyframes move{
     
     
        0%{
     
     
            clip-path: circle(80px at 0% 50%);
        }
        100%{
     
     
            clip-path: circle(80px at 100% 50%);
        }
    }
</style>
<body>
   <h1>北极光之夜</h1>
</body>
</html>

总结:

其实原理就是底层有一层默认颜色的文本,然后上面又用伪类元素覆盖了一层有颜色的文本,然后就是区域显示有颜色那层。

还有更多:
炫彩流光按钮~
3D立体相册~

猜你喜欢

转载自blog.csdn.net/luo1831251387/article/details/111171588