美文网首页web 前端
纯 CSS 实现视差滚动

纯 CSS 实现视差滚动

作者: 刘英滕 | 来源:发表于2017-08-05 21:45 被阅读289次

    视差滚动效果在前几年就流行起来,最近 tag Design 的新作品折扇 App 也有所运用。在介绍折扇历史的时候,滑动长轴画卷,元素的移动有快有慢,创造了景深的效果。

    折扇 App

    可以尝试用 CSS 3 的 perspective 属性,在网页简单实现这种效果。

    首先让滚动发生在父元素的内部,并给父元素加上 perspective: 1px,让父元素获得三维的观察视角。

    .container {
      width: 100vw;
      height: 100vh;
      overflow-x: auto;
      overflow-y: hidden;
      perspective: 1px;
    }
    

    然后再给不同元素分别加上不同的 transform 属性,translateZ 值调节元素在 Z 轴的位置(近大远小),同时配合 scale 值让元素的大小看起来和原来无异。那么就实现了滚动过程中,不同元素看起来的运动速度不同。

    .img-1 {
      transform: translateZ(-1px) scale(2); //变慢两倍
    }
    .img-2 {
      transform: translateZ(-2px) scale(3); //变慢三倍
    }
    .text-1 {
      transform: translateZ(0.5px) scale(0.5); //变快两倍
    }
    
    demo1

    纯 CSS 的视差滚动实现,优点是不需要 JS 插件、加载速度快,缺点是兼容性一般。

    相关文章

      网友评论

      本文标题:纯 CSS 实现视差滚动

      本文链接:https://www.haomeiwen.com/subject/iykwlxtx.html