花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 22|回复: 4

CSS mask 实现文本高亮动画

[复制链接]
  • TA的每日心情
    奋斗
    2026-8-27 13:27
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    3319

    主题

    13万

    回帖

    29万

    积分

    管理员

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

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

    发表于 2026-8-27 13:30 | 显示全部楼层 |阅读模式

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

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

    x

    核心:

    1. 主元素渲染文本,背景设置或继承深色系颜色;
    2. 与主元素同尺寸的伪元素做遮盖层,该伪元素使用 mask 遮罩属性显露主元素内容,mask-size 在水平方向的值小于总长度,其背景与主元素背景同色系、带透明度;
    3. 为高亮所有文本起见,根据渐变设计,mask-position 动画在水平方向的值设置为适当超越左或右边界。

    代码(可在线预览):

    <style>
        /* 黑色背景 */
        body { background: black; }
        /* 主元素 :根据内容自适应宽高 */
        .tdiv {
            width: fit-content;
            height: fit-content;
            font-size: 4vw;
            font-weight: bold;
            color: snow;
            text-shadow: -2px -2px 6px silver;
            margin: 30px auto 0;
            position: relative;
        }
        /* 伪元素 :遮罩 */
        .tdiv::after {
            position: absolute;
            content: '';
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,.65);
            /* x方向位置倒回10%基于其20%尺寸(mask-size)计算 */
            mask: linear-gradient(90deg, red, transparent) no-repeat 0 0 / 20% 100%;
            animation: maskmove 6s linear infinite alternate;
        }
        /* 动画 :遮罩位置变化,x方向位置越过右边界30% */
        @keyframes maskmove {
            to { mask-position: 130% 100%; }
        }
    </style>
    
    <div class="tdiv">明月樓高休獨倚,酒入愁腸,化作相思淚</div>
        

    扩展:

    本例使用线性渐变做伪元素遮罩图案,可以尝试使用径向渐变(radial-gradient)、圆锥渐变(comic-gradient)、图片等做更奇妙的遮罩效果。

    评分

    参与人数 1威望 +30 金钱 +60 经验 +30 收起 理由
    梦江南 + 30 + 60 + 30 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    奋斗
    2026-8-27 13:27
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    3319

    主题

    13万

    回帖

    29万

    积分

    管理员

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

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

     楼主| 发表于 2026-8-27 13:33 | 显示全部楼层
    mask 属性自 2019 年起正式成为标准,chromium 内核 120+ 无障碍,绝大多数现代浏览器完美支持。

    若考虑兼容 chromiun 120- ,可在 mask 属性上一行加 -webkit-mask,属性值和 mask 属性一致。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-8-27 13:27
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    3319

    主题

    13万

    回帖

    29万

    积分

    管理员

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

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

     楼主| 发表于 2026-8-27 13:40 | 显示全部楼层
    mask 属性值对应于 background 属性值,例如一楼示例的 mask-position 对应于 background-position,其它的可依此类推
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-8-27 13:27
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    3319

    主题

    13万

    回帖

    29万

    积分

    管理员

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

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

     楼主| 发表于 2026-8-27 13:42 | 显示全部楼层
    mask 所设置的遮罩:任意非透明的区域显露对象、透明的区域遮挡对象。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-8-27 08:50
  • 签到天数: 823 天

    [LV.10]以坛为家III

    596

    主题

    4万

    回帖

    10万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-8-27 13:44 | 显示全部楼层
    这种代码效果很好看,特别用在今天中元节上很合适。谢谢黑黑老师!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2026-8-27 16:15 , Processed in 0.067700 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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