• JS 流行框架(八):ScrollReveal


    JS 流行库(八):ScrollReveal

    WOW.js + Animate.css 虽然可以实现有趣的网页滚动动画效果,唯一的缺陷是效果只能执行一次,而 ScrollReveal.js 可以弥补此缺陷,特点如下:

    • 兼容 PC 和移动端
    • 不依赖于 jQuery,也不依赖于 Animate.css
    • 不支持低版本浏览器(Animate 和 WOW 同样也不支持)

    基本使用

    1. 导入 ScrollReveal 库

    示例如下:

    <script src="./scrollreveal.js">script>
    
    1. HTML 代码

    示例如下:

    <style>
        * {
            margin: 0;
            padding: 0;
        }
    
        div {
            width: 100px;
            height: 80px;
            border: 1px solid black;
            color: orangered;
            font-size: 20px;
            font-weight: bold;
            text-align: center;
            line-height: 80px;
            border-radius: 5px;
            box-shadow: 0 0 10px black;
            margin: 50px auto;
        }
    
        div:nth-of-type(odd) {
            background-color: black;
            color: white;
        }
    style>
    <div>Div 1div>
    <div>Div 2div>
    <div>Div 3div>
    <div>Div 4div>
    <div>Div 5div>
    <div>Div 6div>
    <div>Div 7div>
    <div>Div 8div>
    <div>Div 9div>
    
    1. JavaScript 代码

    示例如下:

    ScrollReveal().reveal('div');
    

    ScrollReveal 库默认的动画为淡入效果

    高级使用

    ScrollReveal 库可以在初始化 ScrollReveal 实例时配置选项,以实现某种特定的动画效果

    选项类型描述
    resetboolean元素是否在容器来回滚动时都释放动画效果
    durationnumber动画的持续事件、单位毫秒
    delaynumber动画的延迟时间、单位毫秒
    rotateobject/number动画开始时的角度、单位 degree
    opacitynumber动画开始时的透明度
    scalenumber动画开始时的缩放值
    distancestring动画的距离,示例:20px10vw
    originstring动画的方向,示例:lefttopbottom
    easingstring动画的效果,示例:easeease-out

    示例如下:

    let sr = new ScrollReveal({
        reset: true,
        duration: 1000,
        delay: 500,
        rotate: {x: 0, y: 0, z: 45},
        opacity: 0.5,
        scale: 1.5,
        distance: "200px",
        origin: "left",
        easing: "ease"
    });
    sr.reveal("div");
    

    事件响应

    在 ScrollReveal 中有 4 种自定义事件,如下所示:

    事件描述
    beforeReveal在动画效果开始之前调用此回调函数
    afterReveal在动画效果结束之后调用此回调函数
    beforeReset在动画效果恢复初始状态之前调用此回调函数
    afterReset在动画效果恢复初始状态之后调用此回调函数

    之所以恢复动画初始状态是由于,当元素移出容器时,为了准备下一次动画效果,所以必须恢复至执行动画时的初始状态,此外,每一次回调将执行动画的元素传入此回调函数

    示例如下:

    let sr = new ScrollReveal({
        reset: true,
        duration: 1000,
        delay: 500,
        rotate: { x: 0, y: 0, z: 45 },
        opacity: 0.5,
        scale: 1.5,
        distance: "200px",
        origin: "left",
        easing: "ease",
        beforeReveal: function (ele) {
            console.log("Before Reveal");
        },
        afterReveal: function (ele) {
            console.log("After Reveal");
        },
        beforeReset: function (ele) {
            console.log("Before Reset");
        },
        afterReset: function (ele) {
            console.log("After Reset");
        }
    });
    sr.reveal("div");
    
  • 相关阅读:
    北大惠普金融指数-匹配企业绿色创新指数2011-2020年:企业名称、年份、行业分类等多指标数据
    根据以下电路图,补全STM32F103RCT6的IO口初始化程序
    逐鹿澳洲市场 宁德时代储能全场景解决方案亮相澳大利亚全能源展
    代码随想录第五十六天
    基于java+springboot+mybatis+vue+elementui的校园新闻网站
    【组合数学 隔板法 容斥原理】放球问题
    vue video 多个视频切换后视频不显示的解决方法
    抗疫众志成城网页设计成品 抗击疫情感动人物网页制作模板 大学生抗疫静态HTML网页源码 dreamweaver网页作业致敬逆行者网页设计作品
    ToBeWritten之让响应团队参与并做好沟通
    docker&kubernets篇(十八)
  • 原文地址:https://blog.csdn.net/Raymiles/article/details/127094565