花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 9|回复: 0

css clip-path实现文本高亮动画

[复制链接]
  • TA的每日心情
    擦汗
    2026-8-28 21:34
  • 签到天数: 1911 天

    [LV.Master]伴坛终老

    3320

    主题

    13万

    回帖

    29万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-8-28 21:39 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    1️⃣认识 clip-path 属性

    clip-path CSS 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。

    以下例子直观演示 clip-path 将伪元素裁剪为一个小球(伪元素原始尺寸与主元素一致,主伪元素位置重合):

    <style>
        .pa {
            width: 800px;
            height: 400px;
            border: thick inset teal;
            position: relative;
            margin: 30px auto 0;
        }
        .pa::after {
            content: '';
            width: 100%;
            height: 100%;
            background: teal;
            /* 圆形裁剪 :半径=180px,圆心在中央 */
            clip-path: circle(180px at 50% 50%);
            position: absolute;
        }
    </style>
    
    <div class="pa"></div>
        

    2️⃣clip-path 关键帧动画的实现

    仍以圆形裁剪为例,有很多方式可以利用 clip-path 属性实现CSS关键帧动画,最容易想到的是裁剪半径大小的变化。不过下例我们是通过改变裁剪的水平位置来实现圆形的移动效果:

    <style>
        .pa {
            width: 800px;
            height: 400px;
            border: thick outset teal;
            box-sizing: border-box;
            position: relative;
            margin: 30px auto 0;
        }
        .pa::after {
            content: '';
            width: 100%;
            height: 100%;
            background: teal;
            clip-path: circle(120px at -120px 50%);
            animation: move linear 10s infinite;
            position: absolute;
        }
        @keyframes move {
            to { clip-path: circle(120px at 920px 50%); }
        }
    </style>
    
    <div class="pa"></div>
        

    依此,倘若使用矩形裁剪替代圆形裁剪,我们就可以通过 clip-path 属性实现——

    3️⃣文本高亮动画

    核心:① clip-path: inset(上, 右, 下, 左); 改变左切割量,从 0 到 100% 的变化过程;② 伪元素背景设置为与主元素同色、带透明(遮挡、暗化文本)——

    <style>
        .cDiv {
            width: fit-content;
            height: fit-content;
            font: bold 4vw sans-serif;
            color: yellow;
            background: rgb(0, 100, 0);
            padding: 20px 40px;
            position: relative;
            margin: 30px auto;
        }
        .cDiv::after {
            position: absolute;
            content: '';
            inset: 0; /* 与主元素重叠 */
            background: rgba(0, 100, 0, .5);
            /* 初始 :啥也不割 */
            clip-path: inset(0 0 0 0);
            animation: cmove linear 12s infinite alternate;
        }
        /* 动画 :左边界割100% */
        @keyframes cmove {
            to { clip-path: inset(0 0 0 100%); }
        }
    </style>
    
    <div class="cDiv">畫圖省識春風面,環佩空歸月夜魂</div>
        
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-8-28 22:33 , Processed in 0.088376 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表