文字裁剪揭示(幕布式方向可控 CSS 源码)

CSSJS 许可:自研原创

文字裁剪揭示组件源码:overflow 裁剪容器内文字沿上、下、左、右四个方向幕布式揭示,逐行错峰入场,支持重播与方向切换,纯 CSS 过渡实现,适合标题入场与章节切换。

效果演示(真实可交互)

下方三行文字默认被「幕布」遮挡,页面加载后依次从下往上滑出,仿佛幕布缓缓拉开,每行间隔 0.15 秒。下拉框可以切换从下往上、从上往下、从左往右、从右往左四种揭示方向;点击「重新播放」会收起幕布再重新拉开。该效果常用于章节标题的入场仪式感。

裁剪揭示文字

如幕布缓缓拉开

粤喵组件站出品

完整代码

HTML 结构:每行由外层裁剪容器 + 内层位移元素组成,错峰延迟写在内层行内:

<div class="tc-stage" id="tcStage">
  <p class="tc-item" style="--d:0s"><span class="tc-inner">裁剪揭示文字</span></p>
  <p class="tc-item" style="--d:.15s"><span class="tc-inner">如幕布缓缓拉开</span></p>
  <p class="tc-item" style="--d:.3s"><span class="tc-inner">粤喵组件站出品</span></p>
</div>

核心 CSS:外层 overflow: hidden 是幕布,内层默认移出可视区,容器加 .show 后移回原位:

.tc-item { margin: 0; overflow: hidden; }
.tc-inner {
  display: inline-block; font-size: 36px; font-weight: 800;
  transform: translateY(110%);                      /* 默认藏在下方 */
  transition: transform .8s cubic-bezier(.6, .05, .25, 1) var(--d, 0s);
}
.tc-stage.dir-bt .tc-inner { transform: translateY(-110%); }   /* 从上往下 */
.tc-stage.dir-lr .tc-inner { transform: translateX(-110%); }   /* 从左往右 */
.tc-stage.dir-rl .tc-inner { transform: translateX(110%); }    /* 从右往左 */
.tc-stage.show .tc-inner { transform: translateY(0); }         /* 揭示到原位 */

原生 JS:方向切换只改类名,重播先移除 .show、强制回流再加回:

function replayNow() {
  stage.classList.remove('show');
  void stage.offsetWidth;
  stage.classList.add('show');
}
dirSel.addEventListener('change', () => {
  stage.classList.add('dir-' + dirSel.value);
  replayNow();
});

参数说明

参数默认值说明
揭示方向从下往上上下左右四种,JS 切换类名
位移量±110%超出 100% 确保完全藏进幕布
过渡时长.8s每行滑入的时间
错峰延迟 --d0 / .15 / .3s逐行入场时间差
缓动cubic-bezier(.6, .05, .25, 1)先快后慢的幕布感

兼容性与性能

常见问题

Q: 滑动时文字边缘有「描边」或残影? 位移量使用 110% 且裁剪容器不加 padding 即可;若仍有残影,给外层加 will-change: transform 让浏览器提前建层。

Q: 想做成从中间向两侧展开? 用两个内层分别 translateX(-110%) 与 translateX(110%),各自向左/右移出即可实现对称幕布。

Q: 滚动到页面才触发怎么做? 参考粤喵的 blur-reveal-text 组件:用 IntersectionObserver 在进入视口时加 .show,离开时移除。

Q: 可以商用吗? 可以,粤喵自研原创组件,免费商用无需署名。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核