Skip to content

左侧滑入滚动

元素初始位于视口左侧之外,滚动触发后水平滑入到正常位置,同时配合淡入效果。

实时预览

← 左侧滑入
从左侧进入

代码

html
<style>
  .slide-left-target {
    opacity: 0;
    transform: translateX(-120px);
    transition:
      opacity 0.7s ease-out,
      transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .slide-left-target.visible {
    opacity: 1;
    transform: translateX(0);
  }
</style>

<div class="slide-left-target">左侧滑入</div>

左侧滑入滚动滚动触发效果——元素在进入浏览器视口时触发 CSS transition 动画,从隐藏状态过渡到可见状态。配合 Intersection Observer API 实现视口检测,动画由 CSS 驱动,性能优异。

快速使用

  1. 复制 CSS 的初始状态和过渡样式到你的样式文件中
  2. 给需要滚动触发动画的元素添加初始类和 .scroll-target 样式
  3. 使用 Intersection Observer(或本站提供的 JS)在元素进入视口时添加 .visible
  4. 调整 transition 的持续时间和缓动函数以匹配你的页面节奏

使用场景

  • 首屏英雄区:页面加载后元素渐次出现,营造叙事节奏
  • 产品特性展示:每滚动到一个特性区块,触发不同的入场动画
  • 视差滚动:多层背景以不同速度滚动,营造深度感
  • 长篇文章/落地页:滚动进度条给用户阅读进度的心理预期

常见问题

Q: 滚动动画需要 JavaScript 吗? A: 本站滚动动画的演示版用少量 JS(Intersection Observer)检测元素进入视口。纯 CSS 方案可用 @scroll-timeline(Chrome 实验性支持),但生产环境建议用 Intersection Observer + CSS transition 组合。

Q: 如何控制滚动动画只播放一次? A: Intersection Observer 中设置 once: true 选项,元素进入视口后移除 observer。或者添加 class 后就永久保留,利用 CSS transition 的 forwards 填充模式。

Q: 移动端滚动动画卡顿怎么办? A: 确保动画属性只用 transformopacity;降低动画元素的复杂度(减少阴影、模糊等重效果);用 will-change: transform 提前提升合成层。

浏览器兼容性

浏览器兼容性
Chrome / Edge✅ 完全支持(Intersection Observer + CSS transition)
Firefox✅ 完全支持
Safari✅ 完全支持
移动端浏览器✅ 完全支持
IE 11❌ Intersection Observer 不支持,需 polyfill

使用说明

属性说明
translateX(-120px)左侧偏移量,需大于元素宽度确保完全隐藏
cubic-bezier(0.34, 1.56, 0.64, 1)弹性缓动,带轻微回弹效果
opacity配合位移同时淡入
transition-duration建议 0.5~0.8s
threshold: 0.3元素 30% 可见时触发

提示: 可用 translateX(120px) 替代实现右侧滑入,或用 translateX(-120px) rotate(-5deg) 添加轻微旋转增加动感。