有点小九九
简单的事情认真做

scrollReveal(页面缓入效果插件)实现页面滚动时动画加载元素效果

  前面我去了解了元素距页面视图距离,想实现页面滚动是动画加载元素(https://www.cnblogs.com/chenghuayike/p/11970731.html)到处撞墙,心肥意冷啊┭┮﹏┭┮,猛然间发现了scrollReveal 插件,查看了官档后明白过来,这不就是我想实现的效果嘛,还是太过于萌新了。。。

  好了,接下来我总结了一下 scrollReveal 插件的基本使用方法,加强记忆!!

  scrollReveal 插件使用起来非常的简单,三部曲:

  1.引入 scrollReveal :

  <script src="https://unpkg.com/scrollreveal" type="text/javascript" charset="utf-8"></script>
  // 或者下载到本地使用

  2.js代码:

window.sr = ScrollReveal();
sr.reveal('.foo'); // 这里的 .foo 为元素类名 引用与jquery语法相同

  3.html代码:

    <div id="containers">
      <div class="foo"> Foo 🍺</div>
      <div class="foo"> Foo1 </div>
      <div class="foo"> Foo2 </div>
      <div class="foo"> Foo3 </div>
    </div>
     <div class="foo"> Foo4 </div>

  运行项目即可(是不是非常的简单?)

 

  当然,这只是 scrollReveal 插件的最基本的用法,是固定的一种淡入效果,(却不是我想要的动画效果)接下来我们来看一看 scrollReveal 的属性:

  以下是scrollReveal插件 官方文档 给出的属性(自己整理了一下):

  

       //     属性:(默认)
            delay: 0,                                // 延时时间
            distance: '0px',                            // 执行距离
            duration: 600,                            // 执行时长
            easing: 'cubic-bezier(0.5, 0, 0, 1)',     // 执行速度
            interval: 0,                                // 执行间隔(时间)
            opacity: 0,                                // 执行方式(透明度)
            origin: 'bottom',                        // 执行方式(偏移 top:自上而下,bottom:自下而上,left:自左往右,right:自右往左.)
            rotate: {                                // 执行方式(旋转)
                x: 0,                                // x
                y: 0,                                // y
                z: 0,                                // z
            },
            scale: 1,                                // 执行方式(缩放)
            cleanup: false,                            // 暂时不知道是什么东西
            container: document.documentElement,        // 执行容器(后跟元素,填写后只有容器内的元素执行动画)
            desktop: true,                            // 是否在电脑上面执行
            mobile: true,                            // 是否在手机上面执行
            reset: false,                            // 是否重复执行()
            useDelay: 'always',                        // 延时执行方式(always(一直延时执行),once(只延时执行一次),onload(只在加载时延时执行))
            viewFactor: 0.0,                            // 视图显示元素百分之多少的时候执行动画(单位:小数,例:0.50 在元素展示超过百分之五十的时候,执行动画)
            viewOffset: {                            // 视图偏移(把视图抽象成元素移动)
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
            },
            afterReset: function (el) {},            // 重置之后(视图内看不到元素之后,退场动画执行结束之后)
            afterReveal: function (el) {},            // 执行之后(动画已经执行完毕(已完成))
            beforeReset: function (el) {},            // 重置之前(视图内看不到元素之后,退场动画执行结束之前)
            beforeReveal: function (el) {},            // 执行之前(动画开始执行(未完成时))

  这次是不是一目了然(肯定会了解的深入一点了吧),接下来根据官方文档给出的使用方式,我们来试一试:

  1.引入js  2.html代码 (这两步同上)

  3.js代码:(除了使用原生动画属性外,还有两种使用方式)

  第一种:

  直接在 reveal 的时候,在后面参数内直接添加自己想要的某一些属性:

    var containers = document.getElementById("containers")
      window.sr = ScrollReveal();
    sr.reveal('.foo',{container:containers});

  以上代码中  {container:containers}  表示只有在 containers 中的类名为“foo”的元素执行 scrollReveal 插件的动画效果,相当于确定某个盒子(containers)里面的元素执行scrollReveal

  第二种:

  我们可以先 var 一个 option 来写入要替换默认属性

    var option = {
            delay: 0,
            distance: '140px',
            easing: 'ease-in-out',
            origin: "bottom",
            interval: 300,
            afterReset: function(el) {
                console.log("重置之后")
            },
            afterReveal: function(el) {
                console.log("执行之后")
            },
            beforeReset: function(el) {
                console.log("重置之前")
            },
            beforeReveal: function(el) {
                console.log("执行之前")
            },
            reset: true,
        }

  接下来:

sr.reveal('.foo',option);

  相当于用以上option中的属性覆盖掉scrollReveal插件的默认属性,用来替换自己想要的效果,或者使用其中的回调函数等等

以上为我总结的 scrollReveal 插件的一些基本使用方法,相互学习,望大佬带带本萌新。

posted on 2019-12-23 17:29  有点小九九  阅读(3089)  评论(6编辑  收藏  举报