标题动效
标题、标签和数字会升起、解码、打字、轮换、滚动和描绘,版面却纹丝不动,并在真实浏览器里测量。
让标题、标签和数字动起来,但不让版面跟着动:遮罩逐行、逐词、逐字升起,模糊入场,乱码解码,打字机,轮换词槽,金属光泽扫过,数字滚动,铺满容器的大字标,SVG 描边字标和计数加载页。最后用浏览器检查测量布局偏移、每次入场前后的尺寸变化、动画结束后的文字是否与原文一致,以及关闭 JavaScript 或减少动效时是否有文字消失。
使用方法
为品牌选定一种文字语气:一个主入场方式,最多两个辅助模块
先把文案写到静态也成立,再加 data-hm 属性:split、blur、scramble、type、rotate、shine、count、fit、draw 或 preload
运行 scripts/check.mjs,覆盖桌面、手机、减少动效和关闭 JavaScript,修掉所有问题
常见问题
它怎样做到不让版面动?
每个模块从第一帧起就占住最终文字的尺寸:拆分的词保持行内并用 clip-path 裁切,乱码字符锁定为最终字形的宽度,打字和轮换的词都隐藏叠放在同一格里,数字滚动预留最终数值的宽度,铺满的大字用容器单位定字号。检查会测量累计布局偏移,超过 0.01 判失败;三个示例在 0 到 0.0015 之间。
检查在示例上发现了什么?
在 Maison Ardent 上它发现:嵌在拆分标题里的光泽词没有被启用,网页字体加载时大字标跳了一下(布局偏移 0.039),手机上拆分后的标题高了 2 像素。三处都已在组件里修好。一个故意做坏的页面报出 8 个错误和 3 个警告。
减少动效或关闭 JavaScript 时会怎样?
没有脚本时每个元素直接显示最终文字。减少动效时入场直接显示最终文字,循环停在第一个值,跳过加载页。任一模式下有文字被隐藏,检查都会判定失败。
示例是真实的吗?
不是。Halo Labs 和 Maison Ardent 都是虚构的,里面的数字也是编的。两张香水照片是为演示生成的。